<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Eclipse SW360</title><link>https://eclipse.dev/sw360/</link><description>Recent content on Eclipse SW360</description><generator>Hugo</generator><language>en</language><atom:link href="https://eclipse.dev/sw360/index.xml" rel="self" type="application/rss+xml"/><item><title>ADR Index</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/readme/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/readme/</guid><description>&lt;h1 id="architecture-decision-records-adrs"&gt;Architecture Decision Records (ADRs)&lt;/h1&gt;
&lt;p&gt;This directory contains the Architecture Decision Records for SW360.&lt;/p&gt;
&lt;h2 id="adr-index"&gt;ADR Index&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;ADR&lt;/th&gt;
 &lt;th&gt;Title&lt;/th&gt;
 &lt;th&gt;Status&lt;/th&gt;
 &lt;th&gt;Date&lt;/th&gt;
 &lt;th&gt;Format&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/"&gt;ADR-001&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Use Apache Thrift for Internal Services&lt;/td&gt;
 &lt;td&gt;Accepted&lt;/td&gt;
 &lt;td&gt;2014&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;DAR/SWOT&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/"&gt;ADR-002&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Use CouchDB as Primary Database&lt;/td&gt;
 &lt;td&gt;Accepted&lt;/td&gt;
 &lt;td&gt;2014&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;DAR/SWOT&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/"&gt;ADR-003&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Use Keycloak for Authentication&lt;/td&gt;
 &lt;td&gt;Accepted&lt;/td&gt;
 &lt;td&gt;2022&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;DAR/SWOT&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/"&gt;ADR-004&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Migrate to Spring Boot 3.x&lt;/td&gt;
 &lt;td&gt;Accepted&lt;/td&gt;
 &lt;td&gt;2024&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;DAR/SWOT&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/"&gt;ADR-005&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Use Apache Tomcat as Servlet Container&lt;/td&gt;
 &lt;td&gt;Accepted&lt;/td&gt;
 &lt;td&gt;2014&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;DAR/SWOT&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/"&gt;ADR-006&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Migrate to Cloudant SDK for CouchDB Access&lt;/td&gt;
 &lt;td&gt;Accepted&lt;/td&gt;
 &lt;td&gt;2024&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;DAR/SWOT&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/"&gt;ADR-007&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;File-Based API Response Cache for REST Endpoints&lt;/td&gt;
 &lt;td&gt;Accepted&lt;/td&gt;
 &lt;td&gt;2026&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;DAR/SWOT&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-008-spring-boot-4/"&gt;ADR-008&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Upgrade to Spring Boot 4.x and Spring Security 7.x&lt;/td&gt;
 &lt;td&gt;Accepted&lt;/td&gt;
 &lt;td&gt;2026&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Standard&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="templates"&gt;Templates&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Template&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/"&gt;ADR-TEMPLATE.md&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;DAR format with SWOT analysis &amp;amp; T-shirt sizing&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>AI Policy</title><link>https://eclipse.dev/sw360/gsoc/ai-policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/gsoc/ai-policy/</guid><description>&lt;section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-sm js-td-cover td-overlay td-overlay--dark -bg-primary" &gt;
 &lt;div class="col-12"&gt;
 &lt;div class="container td-overlay__inner"&gt;
 &lt;div class="text-center"&gt;
 &lt;div class="pt-3 lead"&gt;
 
&lt;div class="text-left"&gt;
 &lt;h1 class="display-1 mb-5"&gt;AI Policy&lt;/h1&gt;&lt;/div&gt;

&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 
&lt;/section&gt;

&lt;div class="container l-container--padded"&gt;
&lt;div class="row"&gt;
&lt;div class="col-12 col-lg-8"&gt;
&lt;p&gt;Starting 2026, Google has strong advice about the usage of Generative AI in the
GSoC program. Please check them at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For Mentoring Orgs: &lt;a href="https://docs.google.com/document/d/1jglptdn_DovOxjwuhzORn3QhYoeBcToS7ymk3IIWHKY/edit?usp=sharing"&gt;Usage of AI tooling in Google Summer of Code 2026 (for
Mentoring Orgs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;For Contributors: &lt;a href="https://docs.google.com/document/d/1t9GcIBnNXPNO6klRQvU8pL8-uV6afzLo6JUAM299suA/edit?usp=sharing"&gt;Guidance for GSoC Contributors using AI tooling in GSoC
2026 doc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on the suggestions from Google, SW360 has the following guidelines for
GSoC contributors:&lt;/p&gt;</description></item><item><title>Login</title><link>https://eclipse.dev/sw360/docs/userguide/login/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/login/</guid><description>&lt;p&gt;You need a username and a password to access the software. After reaching the SW360 site you will be in the public area of your account. Liferay distinguishes between public and private area, where the private area is protected by login.&lt;/p&gt;
&lt;p&gt;You will see a &amp;ldquo;Welcome to SW360!&amp;rdquo; homepage which is a public area with &lt;strong&gt;Sign In&lt;/strong&gt; and &lt;strong&gt;Create Account&lt;/strong&gt; buttons.
The Sign In button will redirect to the private area in order to work with the portal.&lt;/p&gt;</description></item><item><title>SW360 Architecture</title><link>https://eclipse.dev/sw360/docs/architecture/sw360-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/sw360-architecture/</guid><description>&lt;h1 id="sw360-architecture-documentation"&gt;SW360 Architecture Documentation&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Version:&lt;/strong&gt; 1.0&lt;br&gt;
&lt;strong&gt;Date:&lt;/strong&gt; March 2026&lt;br&gt;
&lt;strong&gt;Classification:&lt;/strong&gt; Public&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="document-information"&gt;Document Information&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Attribute&lt;/th&gt;
 &lt;th&gt;Value&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Document Title&lt;/td&gt;
 &lt;td&gt;SW360 Architecture Documentation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Version&lt;/td&gt;
 &lt;td&gt;1.0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Status&lt;/td&gt;
 &lt;td&gt;Released&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Last Updated&lt;/td&gt;
 &lt;td&gt;March 2026&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Template&lt;/td&gt;
 &lt;td&gt;Based on Arc42&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;License&lt;/td&gt;
 &lt;td&gt;EPL-2.0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#1-introduction-and-goals"&gt;Introduction and Goals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#2-executive-summary"&gt;Executive Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#3-architecture-constraints"&gt;Architecture Constraints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#4-system-context"&gt;System Context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#5-solution-strategy"&gt;Solution Strategy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#6-building-block-view"&gt;Building Block View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#7-runtime-view"&gt;Runtime View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#8-deployment-view"&gt;Deployment View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#9-cross-cutting-concepts"&gt;Cross-cutting Concepts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#10-architecture-decisions"&gt;Architecture Decisions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#11-quality-requirements"&gt;Quality Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#12-risks-and-technical-debt"&gt;Risks and Technical Debt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#13-testing-strategy"&gt;Testing Strategy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#14-glossary"&gt;Glossary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-architecture/#15-frontend-architecture-react-ui"&gt;Frontend Architecture (React UI)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="1-introduction-and-goals"&gt;1. Introduction and Goals&lt;/h2&gt;
&lt;h3 id="11-purpose"&gt;1.1 Purpose&lt;/h3&gt;
&lt;p&gt;SW360 is an open source software component management application designed for large organizations to track, manage, and ensure compliance of open source software components. This document provides a comprehensive architecture overview following the Arc42 template.&lt;/p&gt;</description></item><item><title>ADR-001: Apache Thrift for Internal Services</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/</guid><description>&lt;h1 id="decision-analysis-and-resolution-sw360-internal-rpc-framework"&gt;Decision Analysis and Resolution: SW360 Internal RPC Framework&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team&lt;br&gt;
&lt;strong&gt;Original Decision:&lt;/strong&gt; 2014&lt;br&gt;
&lt;strong&gt;Reformatted:&lt;/strong&gt; April 2026&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Accepted&lt;br&gt;
&lt;strong&gt;Estimated read time:&lt;/strong&gt; 10 minutes&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#background"&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#key-inputs-assumptions-and-restrictions"&gt;Key Inputs, Assumptions and Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#option-1---restjson"&gt;Option 1 - REST/JSON&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#option-2---soapxml"&gt;Option 2 - SOAP/XML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#option-3---apache-thrift"&gt;Option 3 - Apache Thrift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#option-4---grpcprotocol-buffers"&gt;Option 4 - gRPC/Protocol Buffers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#final-decision"&gt;Final Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-001-thrift/#discussion--brainstorming"&gt;Discussion &amp;amp; Brainstorming&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;SW360 was designed as a multi-tier application for open source license compliance management with:&lt;/p&gt;</description></item><item><title>GSoC Idea List - 2026</title><link>https://eclipse.dev/sw360/gsoc/gsoc-projects-2026/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/gsoc/gsoc-projects-2026/</guid><description>&lt;section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-sm js-td-cover td-overlay td-overlay--dark -bg-primary" &gt;
 &lt;div class="col-12"&gt;
 &lt;div class="container td-overlay__inner"&gt;
 &lt;div class="text-center"&gt;
 &lt;div class="pt-3 lead"&gt;
 
&lt;div class="text-left"&gt;
 &lt;h1 class="display-1 mb-5"&gt;GSoC Idea List - 2026&lt;/h1&gt;&lt;/div&gt;

&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 
&lt;/section&gt;

&lt;div class="container l-container--padded"&gt;
&lt;div class="row"&gt;
&lt;div class="col-12 col-lg-8"&gt;
&lt;p&gt;Welcome to the idea page for all GSoC 2026 related information.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check &lt;a href="https://github.com/eclipse-sw360/sw360/discussions/3631"&gt;https://github.com/eclipse-sw360/sw360/discussions/3631&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;
&lt;p&gt;SW360 is applying as a mentoring org again in GSoC 2026 with the ambition to
make it as awesome as the GSoC 2025!&lt;/p&gt;
&lt;p&gt;Please see two main resources for finding out more SW360 in general:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check &lt;a href="https://eclipse.dev/sw360/"&gt;https://eclipse.dev/sw360/&lt;/a&gt; and development and deployment section.&lt;/li&gt;
&lt;li&gt;Try to install SW360 from source or your can try the &lt;a href="https://github.com/eclipse-sw360/sw360/blob/main/docker-compose.yml"&gt;Docker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meetings: Checkout the &lt;a href="https://eclipse.dev/sw360/gsoc/#meetings-table"&gt;Meetings table&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Home Page</title><link>https://eclipse.dev/sw360/docs/userguide/sw360-homepage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/sw360-homepage/</guid><description>&lt;h1 id="home-page"&gt;Home Page&lt;/h1&gt;
&lt;p&gt;The private area of the home page contains an overview of projects and components which are specific to you and other general information.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/ImagesBasic/Home_Page.png"&gt;
&lt;/figure&gt;

&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;Sl.No&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Name&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Main Menu&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Main menu consists primarily of the various tasks you can perform.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;My Projects&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Displays the list of projects for a specific role or clearing state.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;My Task Assignments&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Displays the tasks or moderation requests that are assigned to you. These can be change requests submitted for approval related to the “projects, components or releases” for which you are a creator or a moderator.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;My Components&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Displays the list of components that are created by you.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;My Task Submissions&lt;/td&gt;
 &lt;td style="text-align: left"&gt;These are the change requests that are submitted by you for an approval to change any aspect of a “project, component or release” for which you are not a creator or moderator.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search Bar&lt;/td&gt;
 &lt;td style="text-align: left"&gt;You can find the search bar on the right top corner of the application. Search bar enables you to search for a specific project/component/release.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;My Profile&lt;/td&gt;
 &lt;td style="text-align: left"&gt;You can find the profile icon on the right top corner of the application. You can perform the following actions in my profile:&lt;/br&gt; - &lt;strong&gt;My sites&lt;/strong&gt;, will redirect you to a page where you can view all the sites you have opened in the past. &lt;/br&gt; - &lt;strong&gt;My profile&lt;/strong&gt;, will redirect you to a page where you can view your vcard. &lt;/br&gt; - &lt;strong&gt;My dashboard&lt;/strong&gt;, will redirect you to a page where you can view summary of your profile. &lt;/br&gt; - &lt;strong&gt;Notifications&lt;/strong&gt;, will redirect you to a page where you can view all the latest updates. &lt;/br&gt; - &lt;strong&gt;Shared content&lt;/strong&gt;, will redirect you to a page where you can view all the shared content which are shared with you or shared by you. &lt;/br&gt; - &lt;strong&gt;My submissions&lt;/strong&gt;, will redirect you to a page where you can view all of your submissions. &lt;/br&gt; - &lt;strong&gt;My workflow tasks&lt;/strong&gt;, will redirect you to a page where you can view the tasks which are assined to you or your roles. &lt;/br&gt; - &lt;strong&gt;Account settings&lt;/strong&gt;, will redirect you to a page where you can modify &lt;strong&gt;general information&lt;/strong&gt;, &lt;strong&gt;passwords&lt;/strong&gt;, &lt;strong&gt;addresses and contact&lt;/strong&gt; information and &lt;strong&gt;alert preferences&lt;/strong&gt; as needed. &lt;/br&gt; - &lt;strong&gt;My connected applications&lt;/strong&gt;, will redirect you to a page where you can view connected applications. &lt;/br&gt; - &lt;strong&gt;My organization&lt;/strong&gt;, will redirect you to a page where you can view your organization information. &lt;/br&gt; - You can sign out of SW360 using &lt;strong&gt;sign out&lt;/strong&gt; option.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;My Subscriptions&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Displays a list of various components and releases you have subscribed to. &lt;/br&gt; &lt;code&gt; NOTE: YOU CANNOT SUBSCRIBE TO A PROJECT.&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Recent Components&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Displays a list of recent components which are added to SW360.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Recent Releases&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Displays a list of recent releases which are added to SW360.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>SW360 Frontend Architecture</title><link>https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/</guid><description>&lt;h1 id="sw360-frontend-architecture-documentation"&gt;SW360 Frontend Architecture Documentation&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Version:&lt;/strong&gt; 1.0&lt;br&gt;
&lt;strong&gt;Date:&lt;/strong&gt; May 2026&lt;br&gt;
&lt;strong&gt;Classification:&lt;/strong&gt; Public&lt;br&gt;
&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/eclipse-sw360/sw360-frontend"&gt;eclipse-sw360/sw360-frontend&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="document-information"&gt;Document Information&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Attribute&lt;/th&gt;
 &lt;th&gt;Value&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Document Title&lt;/td&gt;
 &lt;td&gt;SW360 Frontend Architecture Documentation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Version&lt;/td&gt;
 &lt;td&gt;1.0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Status&lt;/td&gt;
 &lt;td&gt;Released&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Last Updated&lt;/td&gt;
 &lt;td&gt;May 2026&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;License&lt;/td&gt;
 &lt;td&gt;EPL-2.0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#1-introduction-and-goals"&gt;Introduction and Goals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#2-technology-stack"&gt;Technology Stack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#3-architecture-constraints"&gt;Architecture Constraints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#4-system-context"&gt;System Context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#5-building-block-view"&gt;Building Block View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#6-runtime-view"&gt;Runtime View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#7-deployment-view"&gt;Deployment View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#8-cross-cutting-concepts"&gt;Cross-cutting Concepts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#9-quality-requirements"&gt;Quality Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/sw360-frontend-architecture/#10-risks-and-technical-debt"&gt;Risks and Technical Debt&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="1-introduction-and-goals"&gt;1. Introduction and Goals&lt;/h2&gt;
&lt;h3 id="11-purpose"&gt;1.1 Purpose&lt;/h3&gt;
&lt;p&gt;The SW360 Frontend is a modern web application that replaces the legacy Liferay Portal UI. Built with &lt;strong&gt;Next.js&lt;/strong&gt; and &lt;strong&gt;React&lt;/strong&gt;, it provides a responsive, internationalized user interface for managing software components, licenses, projects, and compliance workflows.&lt;/p&gt;</description></item><item><title>ADR-002: CouchDB as Primary Database</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/</guid><description>&lt;h1 id="decision-analysis-and-resolution-sw360-primary-database"&gt;Decision Analysis and Resolution: SW360 Primary Database&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team&lt;br&gt;
&lt;strong&gt;Original Decision:&lt;/strong&gt; 2014&lt;br&gt;
&lt;strong&gt;Reformatted:&lt;/strong&gt; April 2026&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Accepted&lt;br&gt;
&lt;strong&gt;Estimated read time:&lt;/strong&gt; 12 minutes&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#background"&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#key-inputs-assumptions-and-restrictions"&gt;Key Inputs, Assumptions and Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#option-1---postgresqlmysql"&gt;Option 1 - PostgreSQL/MySQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#option-2---mongodb"&gt;Option 2 - MongoDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#option-3---apache-couchdb"&gt;Option 3 - Apache CouchDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#option-4---elasticsearch"&gt;Option 4 - Elasticsearch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#final-decision"&gt;Final Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-002-couchdb/#evolution--updates"&gt;Evolution &amp;amp; Updates&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;SW360 manages software components, releases, projects, and licenses for open source license compliance. The data model is characterized by:&lt;/p&gt;</description></item><item><title>GSoC Idea List - 2025</title><link>https://eclipse.dev/sw360/gsoc/gsoc-projects-2025/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/gsoc/gsoc-projects-2025/</guid><description>&lt;section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-sm js-td-cover td-overlay td-overlay--dark -bg-primary" &gt;
 &lt;div class="col-12"&gt;
 &lt;div class="container td-overlay__inner"&gt;
 &lt;div class="text-center"&gt;
 &lt;div class="pt-3 lead"&gt;
 
&lt;div class="text-left"&gt;
 &lt;h1 class="display-1 mb-5"&gt;GSoC Idea List - 2025&lt;/h1&gt;&lt;/div&gt;

&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 
&lt;/section&gt;

&lt;div class="container l-container--padded"&gt;
&lt;div class="row"&gt;
&lt;div class="col-12 col-lg-8"&gt;
&lt;p&gt;Welcome to the idea page for all GSoC 2025 related information.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check &lt;a href="https://github.com/eclipse-sw360/sw360/discussions/2868"&gt;https://github.com/eclipse-sw360/sw360/discussions/2868&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;
&lt;p&gt;SW360 project has been selected as a mentoring Org with GSoC 2025. Thank you,
Google!&lt;/p&gt;
&lt;p&gt;Please see two main resources for finding out more SW360 in general:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check &lt;a href="https://eclipse.dev/sw360/"&gt;https://eclipse.dev/sw360/&lt;/a&gt; and development and deployment section.&lt;/li&gt;
&lt;li&gt;Try to install SW360 from source or your can try the &lt;a href="https://github.com/eclipse-sw360/sw360/blob/main/docker-compose.yml"&gt;Docker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meetings: Checkout the &lt;a href="https://eclipse.dev/sw360/gsoc/#meetings-table"&gt;Meetings table&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Project</title><link>https://eclipse.dev/sw360/docs/userguide/project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/project/</guid><description>&lt;h1 id="10-project-page"&gt;1.0 Project Page&lt;/h1&gt;
&lt;h2 id="101-introduction"&gt;1.01 Introduction&lt;/h2&gt;
&lt;p&gt;Navigate to your project overview by clicking the menu item Projects. Here you can find the list of projects with description and other related details. On the left side of project list you can find a advanced filters to filter out specific project.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/ImagesBasic/Project_Page/Projectpage.png"&gt;
&lt;/figure&gt;

&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;Sl.No.&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/project/#103-project-search"&gt;Advanced Search&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/project/#104-add-project"&gt;Add Project&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/project/#105-import-sbom"&gt;Import SPDX BOM&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/project/#113-export-spreadsheet"&gt;Export Spreadsheet&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/project/#102-project-list"&gt;Project List&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="102-project-list"&gt;1.02 Project List&lt;/h2&gt;
&lt;p&gt;The Project List lists all the relevant projects with the following information:&lt;/p&gt;</description></item><item><title>ADR-003: Keycloak for Authentication</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/</guid><description>&lt;h1 id="decision-analysis-and-resolution-sw360-authentication-provider"&gt;Decision Analysis and Resolution: SW360 Authentication Provider&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team&lt;br&gt;
&lt;strong&gt;Original Decision:&lt;/strong&gt; 2022&lt;br&gt;
&lt;strong&gt;Reformatted:&lt;/strong&gt; April 2026&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Accepted&lt;br&gt;
&lt;strong&gt;Estimated read time:&lt;/strong&gt; 12 minutes&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#background"&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#key-inputs-assumptions-and-restrictions"&gt;Key Inputs, Assumptions and Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#option-1---spring-security-standalone"&gt;Option 1 - Spring Security Standalone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#option-2---auth0"&gt;Option 2 - Auth0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#option-3---keycloak"&gt;Option 3 - Keycloak&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#option-4---okta"&gt;Option 4 - Okta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#option-5---custom-oauth2-server"&gt;Option 5 - Custom OAuth2 Server&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#final-decision"&gt;Final Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-003-keycloak/#implementation-details"&gt;Implementation Details&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;SW360 originally used Liferay Portal&amp;rsquo;s built-in authentication, which coupled user management to the UI layer. With the migration away from Liferay toward a REST-first architecture, several challenges emerged:&lt;/p&gt;</description></item><item><title>Components</title><link>https://eclipse.dev/sw360/docs/userguide/components/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/components/</guid><description>&lt;h1 id="20-components"&gt;2.0 Components&lt;/h1&gt;
&lt;h2 id="201-introduction"&gt;2.01 Introduction&lt;/h2&gt;
&lt;p&gt;The components page displays the list of components and releases that are available in SW360. A component is a list of releases with metadata. A release is a specific version of a component.&lt;/p&gt;
&lt;p&gt;To open a component page, click &lt;strong&gt;Components&lt;/strong&gt; tab from the main menu.
You can find a particular component with Advanced Search, you can also add and edit components in this page.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/ImagesBasic/Componentpage/ComponentPage.png"&gt;
&lt;/figure&gt;

&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;Sl.No.&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/components/#203-component-search"&gt;Advanced Search&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/components/#204-add-component"&gt;Add Component&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/components/#207-import-spdx-bom"&gt;Import SPDX BOM&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/components/#208-export-spreadsheet"&gt;Export Spreadsheet&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/components/#202-component-list"&gt;Component List&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="202-component-list"&gt;2.02 Component List&lt;/h2&gt;
&lt;p&gt;On the component page, you can view all the components that are relevant to you. The components are listed with the following information:&lt;/p&gt;</description></item><item><title>ADR-004: Migrate to Spring Boot 3.x</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/</guid><description>&lt;h1 id="decision-analysis-and-resolution-spring-boot-version-migration"&gt;Decision Analysis and Resolution: Spring Boot Version Migration&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team&lt;br&gt;
&lt;strong&gt;Original Decision:&lt;/strong&gt; 2024&lt;br&gt;
&lt;strong&gt;Reformatted:&lt;/strong&gt; April 2026&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Accepted&lt;br&gt;
&lt;strong&gt;Estimated read time:&lt;/strong&gt; 10 minutes&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#background"&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#key-inputs-assumptions-and-restrictions"&gt;Key Inputs, Assumptions and Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#option-1---stay-on-spring-boot-27x"&gt;Option 1 - Stay on Spring Boot 2.7.x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#option-2---migrate-to-spring-boot-3x"&gt;Option 2 - Migrate to Spring Boot 3.x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#option-3---alternative-framework-migration"&gt;Option 3 - Alternative Framework Migration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#final-decision"&gt;Final Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#migration-effort"&gt;Migration Effort&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-004-spring-boot-3/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;SW360&amp;rsquo;s REST API was built on Spring Boot 2.x with Spring Security 5.x. Several factors drove the need to evaluate migration:&lt;/p&gt;</description></item><item><title>Licenses</title><link>https://eclipse.dev/sw360/docs/userguide/licenses/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/licenses/</guid><description>&lt;h1 id="30-licenses"&gt;3.0 Licenses&lt;/h1&gt;
&lt;h2 id="31-introduction"&gt;3.1 Introduction&lt;/h2&gt;
&lt;p&gt;A software license is a document that provides legally binding guidelines for the use and distribution of software. Licenses page lists all the available licenses in SW360.&lt;/p&gt;
&lt;p&gt;To open the License page, click on the &lt;strong&gt;License tab&lt;/strong&gt; from the main menu bar. You can also add licenses in this page.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://eclipse.dev/sw360/img/ImagesBasic/LicensePage/License_Page.png" alt=""&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;Sl.No.&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/licenses/#32-quick-filter"&gt;Quick Filter&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/licenses/#34-add-license"&gt;Add License&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/project/#113-export-spreadsheet"&gt;Export Spreadsheet, refer to Project Page&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/licenses/#33-license-list"&gt;License List&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="32-quick-filter"&gt;3.2 Quick Filter&lt;/h2&gt;
&lt;p&gt;You can use the Quick Filter to search for a License. To search for a particular license, use the type field.&lt;/p&gt;</description></item><item><title>Packages</title><link>https://eclipse.dev/sw360/docs/userguide/packages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/packages/</guid><description>&lt;h1 id="40-packages"&gt;4.0 Packages&lt;/h1&gt;
&lt;h2 id="401-introduction"&gt;4.01 Introduction&lt;/h2&gt;
&lt;p&gt;The Packages page in SW360 displays all available software packages. A package is a collection of files and details about a specific version of software. Each package includes details such as its version, license, package manager, and other key information.&lt;/p&gt;
&lt;p&gt;To view packages, navigate to the &lt;strong&gt;Packages&lt;/strong&gt; tab in the main menu. You can use the Advanced Search to locate a package by various criteria. Additionally, this page allows you to add new packages and edit existing ones.&lt;/p&gt;</description></item><item><title>Securing SW360</title><link>https://eclipse.dev/sw360/docs/administrationguide/securing-sw360/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/securing-sw360/</guid><description>&lt;p&gt;This page is the single reference for securing an SW360 installation. It
covers application-level authentication and credential management. For
infrastructure-level hardening (TLS, network isolation, file permissions,
reverse proxy) see
&lt;a href="https://eclipse.dev/sw360/docs/deployment/deploy-secure-deployment/"&gt;Security Best Practices&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-authentication-modes"&gt;1. Authentication Modes&lt;/h2&gt;
&lt;p&gt;SW360 v20 supports four authentication methods, selectable per deployment.
Both bare-metal and container setups configure the same properties, just in
different files.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Mode&lt;/th&gt;
 &lt;th&gt;Frontend provider&lt;/th&gt;
 &lt;th&gt;When to use&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;sw360basic&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;HTTP Basic username/password&lt;/td&gt;
 &lt;td&gt;Local development only&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;sw360oauth&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Built-in OAuth2 Authorization Server&lt;/td&gt;
 &lt;td&gt;Internal / automation-heavy setups&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;keycloak&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;External Keycloak OIDC&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Recommended for production&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;api-token&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Personal Bearer API key (REST API token)&lt;/td&gt;
 &lt;td&gt;CI, automation, service scripts&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="11-built-in-basic-auth-sw360basic"&gt;1.1. Built-in Basic Auth (&lt;code&gt;sw360basic&lt;/code&gt;)&lt;/h3&gt;
&lt;p&gt;The default mode. No extra configuration is required; the frontend sends an
&lt;code&gt;Authorization: Basic …&lt;/code&gt; header on every request.&lt;/p&gt;</description></item><item><title>ADR-005: Apache Tomcat as Servlet Container</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/</guid><description>&lt;h1 id="decision-analysis-and-resolution-sw360-servlet-container"&gt;Decision Analysis and Resolution: SW360 Servlet Container&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team&lt;br&gt;
&lt;strong&gt;Original Decision:&lt;/strong&gt; 2014&lt;br&gt;
&lt;strong&gt;Reformatted:&lt;/strong&gt; April 2026&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Accepted&lt;br&gt;
&lt;strong&gt;Estimated read time:&lt;/strong&gt; 8 minutes&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#background"&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#key-inputs-assumptions-and-restrictions"&gt;Key Inputs, Assumptions and Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#option-1---apache-tomcat"&gt;Option 1 - Apache Tomcat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#option-2---eclipse-jetty"&gt;Option 2 - Eclipse Jetty&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#option-3---wildflyjboss"&gt;Option 3 - WildFly/JBoss&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#option-4---glassfish"&gt;Option 4 - GlassFish&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#final-decision"&gt;Final Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#evolution"&gt;Evolution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-005-tomcat/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;SW360 was originally designed as a Liferay Portal application, which required a servlet container to host web applications. The servlet container needed to:&lt;/p&gt;</description></item><item><title>Requests</title><link>https://eclipse.dev/sw360/docs/userguide/requests/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/requests/</guid><description>&lt;h1 id="6-requests"&gt;6. Requests&lt;/h1&gt;
&lt;p&gt;Requests page lists all the requests that are generated by the users in SW360. There are two kind of requests:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Moderation Requests: The requests that are created when a user with limited rights requests a change in a Project/Component/Release. These requests need to be approved by another user with higher rights (Project Owner/ Project Responsible) for the changes to appear in a particular Project/Component/Release. You can also view these requests as tasks in your home page. &lt;/br&gt;
&lt;ul&gt;
&lt;li&gt;My Task Assignments: Moderation requests that are pending for your approval.&lt;/li&gt;
&lt;li&gt;My Task Submissions: Moderation requests that are created by you.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Clearing Request: For more information on clearing requests, refer to &lt;a href="https://eclipse.dev/sw360/docs/userguide/project/#112-clearing-requests"&gt;1.12 Clearing Requests, Project Page&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To open the Requests page, click on the &lt;strong&gt;Requests tab&lt;/strong&gt; from the main menu.&lt;/p&gt;</description></item><item><title>ADR-006: Cloudant SDK for CouchDB Access</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/</guid><description>&lt;h1 id="decision-analysis-and-resolution-couchdb-client-library-migration"&gt;Decision Analysis and Resolution: CouchDB Client Library Migration&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team&lt;br&gt;
&lt;strong&gt;Original Decision:&lt;/strong&gt; 2024&lt;br&gt;
&lt;strong&gt;Reformatted:&lt;/strong&gt; April 2026&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Accepted&lt;br&gt;
&lt;strong&gt;Estimated read time:&lt;/strong&gt; 10 minutes&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#background"&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#key-inputs-assumptions-and-restrictions"&gt;Key Inputs, Assumptions and Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#option-1---ibm-cloudant-sdk"&gt;Option 1 - IBM Cloudant SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#option-2---apache-couchdb-java"&gt;Option 2 - Apache CouchDB-Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#option-3---ektorp-fork-community"&gt;Option 3 - Ektorp Fork (Community)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#option-4---custom-http-client"&gt;Option 4 - Custom HTTP Client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#final-decision"&gt;Final Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#migration-path"&gt;Migration Path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-006-cloudant-sdk/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;SW360 uses Apache CouchDB as its primary database (see ADR-002). The original CouchDB client library was &lt;strong&gt;Ektorp&lt;/strong&gt;, a Java library that provided:&lt;/p&gt;</description></item><item><title>Search</title><link>https://eclipse.dev/sw360/docs/userguide/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/search/</guid><description>&lt;h1 id="7-search"&gt;7. Search&lt;/h1&gt;
&lt;p&gt;On the search page, you can search for Projects, Components, Licenses, Releases, Obligations, Users, Vendors, etc. in SW360.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://eclipse.dev/sw360/img/ImagesBasic/Search_Page.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;To search for a particular (object), click on Search tab and follow the procedure:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Type the &lt;strong&gt;keyword&lt;/strong&gt; in the text field.&lt;/li&gt;
&lt;li&gt;The checkbox in &lt;strong&gt;Restrict To Type&lt;/strong&gt; allows you to further restrict your search to a specific (object), you can choose to restrict the &lt;strong&gt;type&lt;/strong&gt; to projects, components, licenses etc.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Search&lt;/strong&gt; to get the search results&lt;/li&gt;
&lt;li&gt;Click on the component/project/license/obligation/user/vendor/release to be redirected to their respective page.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="wildcards"&gt;Wildcards&lt;/h3&gt;
&lt;p&gt;The user can search with wildcards. A wildcard is a character which substitue for zero or more characters in a string. For a single character users can use &amp;lsquo;?&amp;rsquo; and for multiple character wildcard he can use &amp;lsquo;*&amp;rsquo;. The Wildcard can stand in the middle of characters or at the end, but not at the beginning.&lt;/p&gt;</description></item><item><title>ADR-007: File-Based API Response Cache</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/</guid><description>&lt;h1 id="decision-analysis-and-resolution-rest-api-response-caching"&gt;Decision Analysis and Resolution: REST API Response Caching&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team&lt;br&gt;
&lt;strong&gt;Original Decision:&lt;/strong&gt; 2026&lt;br&gt;
&lt;strong&gt;Reformatted:&lt;/strong&gt; April 2026&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Accepted&lt;br&gt;
&lt;strong&gt;Estimated read time:&lt;/strong&gt; 12 minutes&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#background"&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#key-inputs-assumptions-and-restrictions"&gt;Key Inputs, Assumptions and Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#option-1---spring-cacheable-in-memory"&gt;Option 1 - Spring @Cacheable (In-Memory)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#option-2---redisexternal-cache"&gt;Option 2 - Redis/External Cache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#option-3---file-based-response-cache"&gt;Option 3 - File-Based Response Cache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#option-4---no-caching-status-quo"&gt;Option 4 - No Caching (Status Quo)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#final-decision"&gt;Final Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#implementation-details"&gt;Implementation Details&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-007-api-caching/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;The SW360 REST API exposes resource-intensive endpoints that aggregate large amounts of data. The most critical example is &lt;code&gt;GET /releases?allDetails=true&lt;/code&gt;, which:&lt;/p&gt;</description></item><item><title>Preferences</title><link>https://eclipse.dev/sw360/docs/userguide/preferrences/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/preferrences/</guid><description>&lt;h1 id="8-preferences"&gt;8. Preferences&lt;/h1&gt;
&lt;p&gt;The Preferences page allows you to modify the E-mail notification preferences for changes that occur to project/component/release/license.
To open the Preferences page, click on the &lt;strong&gt;Preference&lt;/strong&gt; tab from the main menu.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://eclipse.dev/sw360/img/ImagesBasic/Preferences%20Page/Preferences_Page.png" alt=""&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;Sl.No.&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/preferrences/#82-email-notification-preferences"&gt;Email Notification Preferences&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/preferrences/#81-sw360-user-information"&gt;SW360 User Information&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;a href="https://eclipse.dev/sw360/docs/userguide/preferrences/#83-rest-api-tokens"&gt;REST API Token &lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="81-sw360-user-information"&gt;8.1 SW360 User Information&lt;/h2&gt;
&lt;p&gt;On the &lt;strong&gt;SW360 User&lt;/strong&gt; section you can view the following information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E-mail&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Primary Department&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;External ID&lt;/strong&gt;: This is your organization ID.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Primary Department Role&lt;/strong&gt;: This is the role you are assigned in SW360.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secondary Departments and Roles&lt;/strong&gt;: Any other roles which are assigned.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="82-email-notification-preferences"&gt;8.2 Email Notification preferences&lt;/h2&gt;
&lt;p&gt;To modify your email notifications, follow the procedure:&lt;/p&gt;</description></item><item><title>ADR-008: Upgrade to Spring Boot 4.x and Spring Security 7.x</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-008-spring-boot-4/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-008-spring-boot-4/</guid><description>&lt;h1 id="decision-analysis-and-resolution-spring-boot-4x-and-spring-security-7x-upgrade"&gt;Decision Analysis and Resolution: Spring Boot 4.x and Spring Security 7.x Upgrade&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team&lt;br&gt;
&lt;strong&gt;Decision Date:&lt;/strong&gt; April 2026
&lt;strong&gt;Status:&lt;/strong&gt; Accepted&lt;br&gt;
&lt;strong&gt;Supersedes:&lt;/strong&gt; ADR-004 (Spring Boot 3.x Migration)&lt;br&gt;
&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://github.com/eclipse-sw360/sw360/pull/4054"&gt;eclipse-sw360/sw360#4054&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-context-and-problem-statement"&gt;1. Context and Problem Statement&lt;/h2&gt;
&lt;p&gt;Spring Boot 3.x, while still supported, is approaching its maintenance window end. Spring Boot 4.x (based on Spring Framework 7.x and Spring Security 7.x) introduces performance improvements, modern Java alignment, and security enhancements. However, the upgrade involves breaking changes in package relocations, removed deprecated APIs, and module restructuring.&lt;/p&gt;</description></item><item><title>ADR-009: Modernize Nouveau Search Architecture</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/</guid><description>&lt;h1 id="decision-analysis-and-resolution-couchdb-nouveau-search-architecture-modernization"&gt;Decision Analysis and Resolution: CouchDB Nouveau Search Architecture Modernization&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; SW360 Architecture Team
&lt;strong&gt;Decision Date:&lt;/strong&gt; July 2026
&lt;strong&gt;Status:&lt;/strong&gt; Proposed&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#1-context-and-problem-statement"&gt;Context and Problem Statement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#2-goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#3-key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#4-options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#41-status-quo"&gt;Status Quo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#42-edge-n-gram-indexing-with-tiered-conjunction-querying"&gt;Edge N-Gram Indexing with Tiered Conjunction Querying&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#5-criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#51-positive-consequences"&gt;Positive Consequences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#52-negative-consequences"&gt;Negative Consequences&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#6-technical-specification"&gt;Technical Specification&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#61-couchdb-nouveau-design-document-definition"&gt;CouchDB Nouveau Design Document Definition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#62-reference-java-implementation"&gt;Reference Java Implementation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-009-nouveau-search/#63-native-nouveau-sorting-matrix"&gt;Native Nouveau Sorting Matrix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="1-context-and-problem-statement"&gt;1. Context and Problem Statement&lt;/h2&gt;
&lt;p&gt;The current SW360 search mechanism constructs queries by appending trailing
wildcards to every input token (&lt;code&gt;term1* OR term2* OR term3*&lt;/code&gt;). While this
maximizes recall for unknown terms, it causes severe issues in production
environments:&lt;/p&gt;</description></item><item><title>How to add a backend portlet to sw360</title><link>https://eclipse.dev/sw360/docs/development/dev-adding-a-new-portlet-backend/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-adding-a-new-portlet-backend/</guid><description>&lt;p&gt;This page how to add some operations / service calls on the backend for the portlet writing on the page that covers the front end. Note that this page does not create a new (thrift service), but just explains how to add more operations.&lt;/p&gt;
&lt;p&gt;This explanation follows bottom up approach where we first add the backend methods and then call them later in the frontend. Quick summary:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add methods to the thrift idl definition&lt;/li&gt;
&lt;li&gt;Add methods to the data handler interface&lt;/li&gt;
&lt;li&gt;Add implementation&lt;/li&gt;
&lt;li&gt;Add tests&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="thrift"&gt;Thrift&lt;/h2&gt;
&lt;p&gt;First we add some methods to the thrift files, components.thrift&lt;/p&gt;</description></item><item><title>How to add a frontend portlet to sw360</title><link>https://eclipse.dev/sw360/docs/development/dev-adding-a-new-portlet-frontend/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-adding-a-new-portlet-frontend/</guid><description>&lt;p&gt;We create a class in&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sw360/src/frontend/sw360-portlets/src/main/java/com/siemens/sw360/portal/portlets/admin/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;called&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DatabaseSanitation.java
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Here are some code snippets that are important:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#069;font-weight:bold"&gt;public&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;class&lt;/span&gt; &lt;span style="color:#0a8;font-weight:bold"&gt;DatabaseSanitation&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;extends&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;Sw360Portlet&lt;span style="color:#bbb"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;the base class Sw360Portlet adds some convenience methods to render the most common return values of functions into messages.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#99f"&gt;@Override&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#069;font-weight:bold"&gt;public&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#078;font-weight:bold"&gt;void&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c0f"&gt;doView&lt;/span&gt;(RenderRequest&lt;span style="color:#bbb"&gt; &lt;/span&gt;request,&lt;span style="color:#bbb"&gt; &lt;/span&gt;RenderResponse&lt;span style="color:#bbb"&gt; &lt;/span&gt;response)&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;throws&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;IOException,&lt;span style="color:#bbb"&gt; &lt;/span&gt;PortletException&lt;span style="color:#bbb"&gt; &lt;/span&gt;{&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#09f;font-style:italic"&gt;// Proceed with page rendering&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;super&lt;/span&gt;.&lt;span style="color:#309"&gt;doView&lt;/span&gt;(request,&lt;span style="color:#bbb"&gt; &lt;/span&gt;response);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This method is used to render different pages, a common pattern would be to have if/else tree like&lt;/p&gt;</description></item><item><title>Administrator Menu</title><link>https://eclipse.dev/sw360/docs/administrationguide/menu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/menu/</guid><description>&lt;p&gt;The &lt;strong&gt;Administrator Menu&lt;/strong&gt; provides centralized access to system management
tools and settings. The menu consists of the following sections:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/administration/Admin-menu.png"&gt;
&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;User&lt;/strong&gt;: Manage system users, including role assignments and bulk
import/export.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Department&lt;/strong&gt;: Manage organizational departments for visibility and access
control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vendors&lt;/strong&gt;: Maintain the global list of component and software vendors.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bulk Release Edit&lt;/strong&gt;: Batch-update attributes across multiple releases
simultaneously.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Licenses&lt;/strong&gt;: Manage the software licenses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;License Types&lt;/strong&gt;: Define and categorize different types of licenses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Obligations&lt;/strong&gt;: Define and manage legal and compliance obligations for specific
licenses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schedule&lt;/strong&gt;: Manage automated background tasks, such as CVE vulnerability
searches.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fossology&lt;/strong&gt;: Configure and monitor the connection to the FOSSology scanning
server.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Import &amp;amp; Export&lt;/strong&gt;: Bulk manage component, release, and license information
via data transfer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database Sanitation&lt;/strong&gt;: Clean up the database and resolve duplicate or
inconsistent identifiers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Attachment Cleanup&lt;/strong&gt;: Manage and purge orphaned or redundant attachments to
save storage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OAuth Client&lt;/strong&gt;: Manage and configure external application clients for API
access.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configurations&lt;/strong&gt;: Fine-tune application behavior and manage feature toggles.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>API Access</title><link>https://eclipse.dev/sw360/docs/development/restapi/access/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/restapi/access/</guid><description>&lt;p&gt;This page is the canonical authentication guide for calling SW360 REST API
endpoints with curl.&lt;/p&gt;
&lt;p&gt;For endpoint-level resource documentation, see
&lt;a href="https://eclipse.dev/sw360/docs/development/restapi/dev-rest-api/"&gt;SW360 Rest API&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;p&gt;Use these environment variables in the examples:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;SW360_HOST&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;https://&amp;lt;my_sw360_server&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;RESOURCE_API&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#033"&gt;$SW360_HOST&lt;/span&gt;&lt;span style="color:#c30"&gt;/resource/api&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;AUTH_SERVER&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#033"&gt;$SW360_HOST&lt;/span&gt;&lt;span style="color:#c30"&gt;/authorization&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;ADMIN_USER&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;&amp;lt;admin@sw360.org&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;ADMIN_PASS&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;&amp;lt;admin-password&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;API_USER&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;&amp;lt;normal.user@sw360.org&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;API_PASS&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;&amp;lt;user-password&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;CLIENT_ID&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;&amp;lt;oauth-client-id&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;CLIENT_SECRET&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;&amp;lt;oauth-client-secret&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#033"&gt;KC_TOKEN_URL&lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;https://&amp;lt;keycloak-host&amp;gt;/realms/&amp;lt;realm&amp;gt;/protocol/openid-connect/token&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="authentication-mechanisms-overview"&gt;Authentication Mechanisms Overview&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Mechanism&lt;/th&gt;
 &lt;th&gt;Header / Credential&lt;/th&gt;
 &lt;th&gt;Typical Use&lt;/th&gt;
 &lt;th&gt;Credential Lifecycle&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;HTTP Basic&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Authorization: Basic &amp;lt;base64(user:password)&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;One-off admin/debug calls&lt;/td&gt;
 &lt;td&gt;User password lifecycle&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;API Token&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Authorization: Token &amp;lt;token&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;User- or service-owned long-lived integrations&lt;/td&gt;
 &lt;td&gt;SW360 token validity settings&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OAuth2 &lt;code&gt;client_credentials&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Authorization: Bearer &amp;lt;jwt&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Service-to-service automation&lt;/td&gt;
 &lt;td&gt;OAuth client + short-lived JWT&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OAuth2 &lt;code&gt;authorization_code&lt;/code&gt; (+ PKCE)&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Authorization: Bearer &amp;lt;jwt&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;End-user delegated UI access&lt;/td&gt;
 &lt;td&gt;Browser login + code exchange&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Keycloak OIDC/OAuth2&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Authorization: Bearer &amp;lt;jwt&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;External IAM/SSO deployments&lt;/td&gt;
 &lt;td&gt;Keycloak token lifecycle&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="which-mechanism-should-i-use"&gt;Which Mechanism Should I Use?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;One-off admin debug or smoke test: use &lt;strong&gt;HTTP Basic&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Long-lived integration owned by a SW360 user: use &lt;strong&gt;API Token&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Non-interactive service-to-service integration: use &lt;strong&gt;OAuth2 &lt;code&gt;client_credentials&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;End-user delegated access from browser/UI: use &lt;strong&gt;OAuth2 &lt;code&gt;authorization_code&lt;/code&gt; + PKCE&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Centralized enterprise identity/SSO: use &lt;strong&gt;Keycloak&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="authorization-model-in-resource-server"&gt;Authorization Model in &lt;code&gt;resource-server&lt;/code&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /api/**&lt;/code&gt; requires &lt;code&gt;TOKEN_READ&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST&lt;/code&gt;, &lt;code&gt;PUT&lt;/code&gt;, &lt;code&gt;PATCH&lt;/code&gt;, &lt;code&gt;DELETE /api/**&lt;/code&gt; require &lt;code&gt;TOKEN_WRITE&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SW360 merges user-group authorities (for example &lt;code&gt;READ&lt;/code&gt;, &lt;code&gt;WRITE&lt;/code&gt;, &lt;code&gt;ADMIN&lt;/code&gt;) with
token capability authorities (&lt;code&gt;TOKEN_READ&lt;/code&gt;, &lt;code&gt;TOKEN_WRITE&lt;/code&gt;) before endpoint checks.&lt;/p&gt;</description></item><item><title>BR-CLR-001: Release Clearing State Determination &amp; Manual Transitions</title><link>https://eclipse.dev/sw360/docs/businessrules/clearing/br-clr-001-release-clearing-state-determination/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/businessrules/clearing/br-clr-001-release-clearing-state-determination/</guid><description>&lt;h1 id="br-clr-001-release-clearing-state-determination--manual-transitions"&gt;BR-CLR-001: Release Clearing State Determination &amp;amp; Manual Transitions&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Standard Classification:&lt;/strong&gt; State Machine / Behavioral Invariant &amp;amp; Lifecycle Constraint&lt;br&gt;
&lt;strong&gt;Target Entity:&lt;/strong&gt; &lt;code&gt;Release&lt;/code&gt;, &lt;code&gt;Attachment&lt;/code&gt; (&lt;code&gt;CLEARING_REPORT&lt;/code&gt;, &lt;code&gt;INTERNAL_USE_SCAN_REPORT&lt;/code&gt;, &lt;code&gt;INITIAL_SCAN_REPORT&lt;/code&gt;), Integration Actions (&lt;code&gt;Send to FOSSology&lt;/code&gt;)&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Approved&lt;br&gt;
&lt;strong&gt;Enforcement Points:&lt;/strong&gt; Backend Domain Services (&lt;code&gt;ReleaseService.autosetReleaseClearingState&lt;/code&gt;, &lt;code&gt;ComponentDatabaseHandler.evaluateClearingStateForScanAvailable&lt;/code&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="1-executive-summary--formal-statements"&gt;1. Executive Summary &amp;amp; Formal Statements&lt;/h2&gt;
&lt;h3 id="11-formal-statement-rulespeak--ears"&gt;1.1 Formal Statement (RuleSpeak® / EARS)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;While&lt;/strong&gt; updating a &lt;code&gt;Release&lt;/code&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; the user manually sets &lt;code&gt;clearingState&lt;/code&gt; to &lt;code&gt;UNDER_CLEARING&lt;/code&gt; &lt;strong&gt;and&lt;/strong&gt; the prior &lt;code&gt;clearingState&lt;/code&gt; is either &lt;code&gt;NEW_CLEARING&lt;/code&gt; or &lt;code&gt;REPORT_AVAILABLE&lt;/code&gt;, &lt;strong&gt;then&lt;/strong&gt; the system &lt;strong&gt;shall preserve the manual state&lt;/strong&gt; and skip automatic recalculation based on attachments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Otherwise&lt;/strong&gt;, the system &lt;strong&gt;shall automatically determine and assign&lt;/strong&gt; the &lt;code&gt;clearingState&lt;/code&gt; according to the following evaluation precedence:
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; a Clearing Report (&lt;code&gt;BestClearingReport&lt;/code&gt;) is attached:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; its &lt;code&gt;checkStatus&lt;/code&gt; is &lt;code&gt;ACCEPTED&lt;/code&gt;, &lt;strong&gt;then&lt;/strong&gt; &lt;code&gt;clearingState&lt;/code&gt; shall be &lt;code&gt;APPROVED&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Otherwise&lt;/strong&gt; (&lt;code&gt;checkStatus&lt;/code&gt; is not &lt;code&gt;ACCEPTED&lt;/code&gt;), &lt;strong&gt;then&lt;/strong&gt; &lt;code&gt;clearingState&lt;/code&gt; shall be &lt;code&gt;REPORT_AVAILABLE&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;strong&gt;Else if&lt;/strong&gt; an Internal Use Scan Report (&lt;code&gt;BestInternalUseScanReport&lt;/code&gt;) is attached with &lt;code&gt;checkStatus&lt;/code&gt; equal to &lt;code&gt;ACCEPTED&lt;/code&gt;, &lt;strong&gt;then&lt;/strong&gt; &lt;code&gt;clearingState&lt;/code&gt; shall be &lt;code&gt;INTERNAL_USE_SCAN_AVAILABLE&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Else if&lt;/strong&gt; an Initial Scan Report (&lt;code&gt;INITIAL_SCAN_REPORT&lt;/code&gt;) is attached (evaluated via &lt;code&gt;evaluateClearingStateForScanAvailable &amp;gt; 0&lt;/code&gt;), &lt;strong&gt;then&lt;/strong&gt; &lt;code&gt;clearingState&lt;/code&gt; shall be &lt;code&gt;SCAN_AVAILABLE&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Otherwise&lt;/strong&gt; (no qualifying scan, internal use, or clearing reports exist), &lt;code&gt;clearingState&lt;/code&gt; shall default to &lt;code&gt;NEW_CLEARING&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; a user triggers the action &lt;strong&gt;&amp;ldquo;Send to FOSSology&amp;rdquo;&lt;/strong&gt; on a &lt;code&gt;Release&lt;/code&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; the system &lt;strong&gt;shall transition&lt;/strong&gt; the release &lt;code&gt;clearingState&lt;/code&gt; to &lt;code&gt;SENT_TO_CLEARING_TOOL&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-purpose--risk-mitigated"&gt;1.2 Purpose &amp;amp; Risk Mitigated&lt;/h3&gt;
&lt;p&gt;Automating the &lt;code&gt;Release&lt;/code&gt; clearing lifecycle based on verified attachment artifacts eliminates human error and status drift, ensuring that releases are never marked &lt;code&gt;APPROVED&lt;/code&gt; without an accepted clearing report. Allowing an explicit manual transition to &lt;code&gt;UNDER_CLEARING&lt;/code&gt; from unverified or draft states (&lt;code&gt;NEW_CLEARING&lt;/code&gt;, &lt;code&gt;REPORT_AVAILABLE&lt;/code&gt;) enables clearing specialists to explicitly indicate active work on a release, preventing duplicate clearing efforts across distributed teams.&lt;/p&gt;</description></item><item><title>BR-PROJ-001: Closed Project Update Restrictions</title><link>https://eclipse.dev/sw360/docs/businessrules/projects/br-proj-001-closed-project-restrictions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/businessrules/projects/br-proj-001-closed-project-restrictions/</guid><description>&lt;h1 id="br-proj-001-closed-project-update-restrictions"&gt;BR-PROJ-001: Closed Project Update Restrictions&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Standard Classification:&lt;/strong&gt; Behavioral Constraint / Access Control&lt;br&gt;
&lt;strong&gt;Target Entity:&lt;/strong&gt; &lt;code&gt;Project&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Approved&lt;br&gt;
&lt;strong&gt;Governing Configuration:&lt;/strong&gt; &lt;code&gt;projects.closed.update.strict&lt;/code&gt; (Default: &lt;code&gt;false&lt;/code&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="1-executive-summary--formal-statements"&gt;1. Executive Summary &amp;amp; Formal Statements&lt;/h2&gt;
&lt;h3 id="11-formal-statement-rulespeak--ears"&gt;1.1 Formal Statement (RuleSpeak® / EARS)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;While&lt;/strong&gt; a Project has clearing state &lt;code&gt;CLOSED&lt;/code&gt; (&lt;code&gt;project.clearingState == ProjectClearingState.CLOSED&lt;/code&gt;):
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; &lt;code&gt;projects.closed.update.strict&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;, &lt;strong&gt;then&lt;/strong&gt; the system &lt;strong&gt;shall allow&lt;/strong&gt; users with role &lt;code&gt;CLEARING_ADMIN&lt;/code&gt; (or above) as well as the project team (Creator, Project Responsible, Moderators, Contributors, and Lead Architects) to modify all fields of the project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; &lt;code&gt;projects.closed.update.strict&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, &lt;strong&gt;then&lt;/strong&gt; the system &lt;strong&gt;shall allow&lt;/strong&gt; only &lt;code&gt;CLEARING_ADMIN&lt;/code&gt; (or above) to modify all fields. The project team (Creator, Project Responsible, Moderators, Contributors, and Lead Architects) &lt;strong&gt;shall only be allowed&lt;/strong&gt; to modify the allowlisted maintenance fields:
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Project State&lt;/strong&gt; (&lt;code&gt;state&lt;/code&gt;, project status, not clearing state)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project Responsibles&lt;/strong&gt; (&lt;code&gt;projectResponsible&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project Owner&lt;/strong&gt; (&lt;code&gt;projectOwner&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security Responsible&lt;/strong&gt; (&lt;code&gt;securityResponsible&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable Security Vulnerability Monitoring&lt;/strong&gt; (&lt;code&gt;securityVulnerabilitiesMonitoring&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Display Vulnerabilities&lt;/strong&gt; (&lt;code&gt;displayVulnerabilities&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phase-out date&lt;/strong&gt; (&lt;code&gt;phaseOutDate&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;External IDs&lt;/strong&gt; (&lt;code&gt;externalIds&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; any other user attempts an update, or if a restricted user attempts to modify non-allowlisted fields in strict mode, the system &lt;strong&gt;shall reject&lt;/strong&gt; the request with HTTP &lt;code&gt;403 Forbidden&lt;/code&gt; and &lt;strong&gt;shall not&lt;/strong&gt; generate any moderation request.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-purpose--risk-mitigated"&gt;1.2 Purpose &amp;amp; Risk Mitigated&lt;/h3&gt;
&lt;p&gt;This restriction is enforced strictly for &lt;strong&gt;audit and compliance purposes&lt;/strong&gt;. A project is transitioned into the &lt;strong&gt;CLOSED&lt;/strong&gt; clearing state only after its license clearing process is fully completed and approved. Once in the closed state, no changes that could result in a &lt;strong&gt;drift of license clearing&lt;/strong&gt; (such as unauthorized modifications, additions, or removals of components, releases, attachments, or license obligations) shall be allowed. This guarantees that the cleared and certified baseline remains immutable and audit-compliant, while still permitting non-clearing operational lifecycle maintenance (e.g., updating security contacts, phase-out dates, or project ownership).&lt;/p&gt;</description></item><item><title>BR-SEC-001: Security User Role &amp; Token Scope REST Filter Restrictions</title><link>https://eclipse.dev/sw360/docs/businessrules/security/br-sec-001-security-user-role-restrictions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/businessrules/security/br-sec-001-security-user-role-restrictions/</guid><description>&lt;h1 id="br-sec-001-security-user-role--token-scope-rest-filter-restrictions"&gt;BR-SEC-001: Security User Role &amp;amp; Token Scope REST Filter Restrictions&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Standard Classification:&lt;/strong&gt; Role Definition &amp;amp; Behavioral Constraint / Access Control&lt;br&gt;
&lt;strong&gt;Target Entity:&lt;/strong&gt; &lt;code&gt;User&lt;/code&gt; (Role: &lt;code&gt;SECURITY_USER&lt;/code&gt;), &lt;code&gt;Token&lt;/code&gt; (Scopes: &lt;code&gt;READ&lt;/code&gt;, &lt;code&gt;WRITE&lt;/code&gt;), &lt;code&gt;Project&lt;/code&gt;, &lt;code&gt;Vulnerability&lt;/code&gt;, REST Endpoints&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Approved&lt;br&gt;
&lt;strong&gt;Enforcement Points:&lt;/strong&gt; Backend Permissions (&lt;code&gt;PermissionUtils&lt;/code&gt;, &lt;code&gt;ProjectPermissions&lt;/code&gt;) and Resource Server (&lt;code&gt;EndpointsFilter&lt;/code&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="1-executive-summary--formal-statements"&gt;1. Executive Summary &amp;amp; Formal Statements&lt;/h2&gt;
&lt;h3 id="11-formal-statement-rulespeak--ears"&gt;1.1 Formal Statement (RuleSpeak® / EARS)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;While&lt;/strong&gt; an authenticated user has the role &lt;code&gt;SECURITY_USER&lt;/code&gt;:
&lt;ul&gt;
&lt;li&gt;The system &lt;strong&gt;shall grant read access&lt;/strong&gt; to &lt;strong&gt;all&lt;/strong&gt; projects (including &lt;code&gt;PRIVATE&lt;/code&gt; projects of any department or owner), but &lt;strong&gt;only&lt;/strong&gt; to their &lt;strong&gt;Summary&lt;/strong&gt; and &lt;strong&gt;Vulnerabilities&lt;/strong&gt; information.&lt;/li&gt;
&lt;li&gt;The system &lt;strong&gt;shall deny access&lt;/strong&gt; to clearing, ECC (Export Control and Customs), compliance, attachments, and license obligations details for those projects.&lt;/li&gt;
&lt;li&gt;The system &lt;strong&gt;shall not allow&lt;/strong&gt; the user to create, modify, or delete core catalog entities across the system (strictly read-only role).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;While&lt;/strong&gt; an incoming REST API request is authenticated via an API Token or initiated by a &lt;code&gt;SECURITY_USER&lt;/code&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; the token possesses &lt;code&gt;READ&lt;/code&gt; scope (or the authenticated user is &lt;code&gt;SECURITY_USER&lt;/code&gt;):
&lt;ul&gt;
&lt;li&gt;The REST API Gateway (&lt;code&gt;EndpointsFilter&lt;/code&gt;) &lt;strong&gt;shall intercept and block&lt;/strong&gt; all HTTP &lt;code&gt;POST&lt;/code&gt;, &lt;code&gt;PUT&lt;/code&gt;, &lt;code&gt;PATCH&lt;/code&gt;, and &lt;code&gt;DELETE&lt;/code&gt; requests with HTTP &lt;code&gt;503 Service Unavailable&lt;/code&gt; / &lt;code&gt;403 Forbidden&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Otherwise&lt;/strong&gt;, the gateway &lt;strong&gt;shall allow&lt;/strong&gt; safe non-mutating query endpoints and self-service token lifecycle operations:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;POST /api/releases/batch-summary&lt;/code&gt; (Batch data retrieval requiring a JSON request payload).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/users/tokens&lt;/code&gt; (Self-service generation of &lt;code&gt;READ&lt;/code&gt; or &lt;code&gt;WRITE&lt;/code&gt; scoped user API tokens from the UI/client).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DELETE /api/users/tokens&lt;/code&gt; (Self-service revocation and cleanup of the user&amp;rsquo;s own API tokens).&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; the token possesses &lt;code&gt;WRITE&lt;/code&gt; scope and the user is not &lt;code&gt;SECURITY_USER&lt;/code&gt;, the system &lt;strong&gt;shall permit&lt;/strong&gt; standard HTTP mutation verbs (&lt;code&gt;POST&lt;/code&gt;, &lt;code&gt;PUT&lt;/code&gt;, &lt;code&gt;PATCH&lt;/code&gt;, &lt;code&gt;DELETE&lt;/code&gt;) subject to standard domain permission checks.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-purpose--risk-mitigated"&gt;1.2 Purpose &amp;amp; Risk Mitigated&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;SECURITY_USER&lt;/code&gt; role and &lt;code&gt;READ&lt;/code&gt; token scopes allow automated security scanners, audit tools, and read-only integrations global visibility into vulnerabilities and security posture across the entire organization&amp;rsquo;s software catalog without exposure to proprietary project internals, compliance data, or the ability to alter database records. Enforcing strict read-only behavior at the HTTP filter level guarantees defense-in-depth against unauthorized mutation attempts while explicitly allowing batch query POST requests and self-service token generation and revocation (to ensure users can manage their own security credentials and immediately invalidate compromised tokens).&lt;/p&gt;</description></item><item><title>SW360 Development Branches</title><link>https://eclipse.dev/sw360/docs/development/dev-branches/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-branches/</guid><description>&lt;h2 id="branches-structure"&gt;Branches structure&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;github-nickname&amp;gt;/&amp;lt;issue&amp;gt;/&amp;lt;description&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="examples"&gt;Examples:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;maierthomas/#1/fix-dowload-bundle&lt;/li&gt;
&lt;li&gt;maierthomas/#3/sw360portal-specific-links&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>How to add fields to an existing class</title><link>https://eclipse.dev/sw360/docs/development/dev-adding-new-fields-to-existing-classes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-adding-new-fields-to-existing-classes/</guid><description>&lt;p&gt;The license portlet is different from the other portlets as there is no Details/Edit page for each element. There is only a combined edit/view page.
We will add the license text to licenses in the thrift file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-thrift" data-lang="thrift"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f60"&gt;13&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;optional&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#078;font-weight:bold"&gt;string&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;text;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To update the text we write a liferay Action in the LicensesPortlet:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#99f"&gt;@UsedAsLiferayAction&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;public&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#078;font-weight:bold"&gt;void&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c0f"&gt;changeText&lt;/span&gt;(ActionRequest&lt;span style="color:#bbb"&gt; &lt;/span&gt;request,&lt;span style="color:#bbb"&gt; &lt;/span&gt;ActionResponse&lt;span style="color:#bbb"&gt; &lt;/span&gt;response)&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;throws&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;PortletException,&lt;span style="color:#bbb"&gt; &lt;/span&gt;IOException&lt;span style="color:#bbb"&gt; &lt;/span&gt;{&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;String&lt;span style="color:#bbb"&gt; &lt;/span&gt;licenseId&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;request.&lt;span style="color:#309"&gt;getParameter&lt;/span&gt;(LICENSE_ID);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;String&lt;span style="color:#bbb"&gt; &lt;/span&gt;text&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;request.&lt;span style="color:#309"&gt;getParameter&lt;/span&gt;(License.&lt;span style="color:#309"&gt;_Fields&lt;/span&gt;.&lt;span style="color:#309"&gt;TEXT&lt;/span&gt;.&lt;span style="color:#309"&gt;name&lt;/span&gt;());&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;if&lt;/span&gt;(&lt;span style="color:#555"&gt;!&lt;/span&gt;Strings.&lt;span style="color:#309"&gt;isNullOrEmpty&lt;/span&gt;(licenseId))&lt;span style="color:#bbb"&gt; &lt;/span&gt;{&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;try&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;{&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;User&lt;span style="color:#bbb"&gt; &lt;/span&gt;user&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;UserCacheHolder.&lt;span style="color:#309"&gt;getUserFromRequest&lt;/span&gt;(request);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;LicenseService.&lt;span style="color:#309"&gt;Iface&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;client&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;thriftClients.&lt;span style="color:#309"&gt;makeLicenseClient&lt;/span&gt;();&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;final&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;License&lt;span style="color:#bbb"&gt; &lt;/span&gt;license&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;client.&lt;span style="color:#309"&gt;getFromID&lt;/span&gt;(licenseId);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;license.&lt;span style="color:#309"&gt;setText&lt;/span&gt;(CommonUtils.&lt;span style="color:#309"&gt;nullToEmptyString&lt;/span&gt;(text));&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;final&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;RequestStatus&lt;span style="color:#bbb"&gt; &lt;/span&gt;requestStatus&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#555"&gt;=&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;client.&lt;span style="color:#309"&gt;updateLicense&lt;/span&gt;(license,&lt;span style="color:#bbb"&gt; &lt;/span&gt;user);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;renderRequestStatus(request,response,requestStatus);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;}&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;catch&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;(TException&lt;span style="color:#bbb"&gt; &lt;/span&gt;e)&lt;span style="color:#bbb"&gt; &lt;/span&gt;{&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;log.&lt;span style="color:#309"&gt;error&lt;/span&gt;(&lt;span style="color:#c30"&gt;&amp;#34;Error updating license&amp;#34;&lt;/span&gt;,&lt;span style="color:#bbb"&gt; &lt;/span&gt;e);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;}&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;}&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;response.&lt;span style="color:#309"&gt;setRenderParameter&lt;/span&gt;(LICENSE_ID,&lt;span style="color:#bbb"&gt; &lt;/span&gt;licenseId);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;response.&lt;span style="color:#309"&gt;setRenderParameter&lt;/span&gt;(PAGENAME,&lt;span style="color:#bbb"&gt; &lt;/span&gt;PAGENAME_DETAIL);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;response.&lt;span style="color:#309"&gt;setRenderParameter&lt;/span&gt;(SELECTED_TAB,&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;LicenseText&amp;#34;&lt;/span&gt;);&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;}&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To integrate it in the jsp we make the according changes, important to note is the ActionUrl that we define:&lt;/p&gt;</description></item><item><title>Component / Release</title><link>https://eclipse.dev/sw360/docs/development/testcases/test-cases-components/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/testcases/test-cases-components/</guid><description>&lt;h2 id="tc01-add-a-component-and-release-with-vendor-present"&gt;TC01: Add a component and release with vendor present&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user&lt;/td&gt;
 &lt;td style="text-align: left"&gt;User successfully signed in and &lt;em&gt;Home&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Components&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Components&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Component&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- &lt;em&gt;New Component&lt;/em&gt; page is displayed with mandatory fields marked with red star: Name, Categories, Component Type. &lt;br&gt;- A message &lt;em&gt;Success:New Component&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in a component &lt;em&gt;Name&lt;/em&gt;, &lt;em&gt;Categories&lt;/em&gt; and &lt;em&gt;Component Type&lt;/em&gt; fields. &lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;br&gt;- Name: Component 1@1&lt;br&gt;- Categories: Categories_1@1&lt;br&gt;- Component Type: OSS&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Component&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Create component successfully. &lt;br&gt;- Redirect to the edit component page.&lt;br&gt;-Show message: &lt;em&gt;Success:You are editing the original document.&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Releases&lt;/em&gt; tab&lt;br&gt;Click &lt;em&gt;Add Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to Add Release page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in a release &lt;em&gt;Version&lt;/em&gt; and &lt;em&gt;CPE ID&lt;/em&gt;&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;br&gt;- Version: version1.0.0.x&lt;br&gt;- CPE ID: UUID_1002&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields:&lt;br&gt;- Version: version1.0.0.x&lt;br&gt;- CPE ID: UUID_1002&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Create a release successfully.&lt;br&gt;- Redirect to the edit new release page.&lt;br&gt;- The message &lt;em&gt;Success:You are editing the original document.&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Vendor&lt;/em&gt; field&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Vendor&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Vendor&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Create new Vendor&lt;/em&gt; dialog display&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input data in fields&lt;br&gt;- Full Name: add vendor 01&lt;br&gt;-Short Name: add vendor01&lt;br&gt;-URL: &lt;a href="https://github.com/eclipse-sw360/sw360"&gt;https://github.com/eclipse-sw360/sw360&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Vendor&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The vendor is added in Vendor field of the release with full name is &lt;em&gt;add vendor 01&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;13&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Attachments&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Attachments&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;14&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Attachment&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Upload Attachment&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;15&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Browse&lt;/em&gt; and select the attachment.&lt;br&gt;Eg: attachment1.xlsx&lt;/td&gt;
 &lt;td style="text-align: left"&gt;File name is displayed in the dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;16&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Upload&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The file is uploaded and dialog is closed. Also the attached file is listed in the &lt;em&gt;Attachment&lt;/em&gt; page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;17&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Change the attachment &lt;em&gt;Type&lt;/em&gt; to real type.&lt;br&gt;Eg: Component license information (Combined)&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Type changed successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;18&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message: &lt;em&gt;Success:Release {name} ({version}) updated successfully!&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc02-verify-data-after-add-a-component-and-release-with-vendor-present"&gt;TC02: Verify data after add a component and release with vendor present&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for the component is created in TC01:&lt;br&gt;- Click &lt;em&gt;Components&lt;/em&gt; portlet&lt;br&gt;- At Advanced Search area, input &lt;em&gt;Component 1@1&lt;/em&gt; in the &lt;em&gt;Component Name&lt;/em&gt; textbox.&lt;br&gt;- Click &lt;em&gt;Search&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The new component display in the table with:&lt;br&gt;- Vendor: add vendor01&lt;br&gt;- Component Name: &lt;em&gt;Component 1@1&lt;/em&gt; is displayed with hyper link.&lt;br&gt;- Main licenses: blank&lt;br&gt;- Component Type: OSS&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click hyper link of name &lt;em&gt;Component 1@1&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to view component &lt;em&gt;Component 1@1&lt;/em&gt; page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Release Overview&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The release display with:&lt;br&gt;- Name: Component 1@1&lt;br&gt;- Version displays with hyper link: version1.0.0.x&lt;br&gt;- Clearing State: New&lt;br&gt;- Clearing Report: no report&lt;br&gt;- Release Mainline State: Open&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click hyper link &lt;em&gt;version1.0.0.x&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to view screen of release &lt;em&gt;Component 1@1 version1.0.0.x&lt;/em&gt;&lt;br&gt;Data of the release:&lt;br&gt;- Summary tab:&lt;br&gt;+ display text with: COMPONENT 1@1 VERSION1.0.0.X&lt;br&gt;+ CPE ID: UUID_1002&lt;br&gt;+ Created on: date of created.&lt;br&gt;+ Created by: user created.&lt;br&gt;+ Modified On: date of modified.&lt;br&gt;+ Modified By: user modified.&lt;br&gt;+ Clearing State: New&lt;br&gt;+ Release Mainline State: Open&lt;br&gt;+ Release Vendor with:&lt;br&gt;   Full Name:	add vendor 01&lt;br&gt;   Short Name: add vendor01&lt;br&gt;   URL: &lt;a href="https://github.com/eclipse-sw360/sw360"&gt;https://github.com/eclipse-sw360/sw360&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Attachments&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Display file name &lt;em&gt;attachment1.xlsx&lt;/em&gt; in the table.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc03-modify-a-component-and-release-with-vendor-present"&gt;TC03: Modify a component and release with vendor present&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for an existing component (e.g. created in TC01: &lt;em&gt;Component 1@1&lt;/em&gt;) and click &lt;em&gt;Edit&lt;/em&gt; icon&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Success:You are editing the original document&lt;/em&gt; message is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Releases&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Release list is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to Add Release page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in a release &lt;em&gt;Version&lt;/em&gt; and &lt;em&gt;CPE ID&lt;/em&gt;&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;br&gt;- Version: v1.0.0.1&lt;br&gt;- CPE ID: cpe:id:123456&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields:&lt;br&gt;- Version: v1.0.0.1&lt;br&gt;- CPE ID: cpe:id:123456&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Redirect to the edit new release page.&lt;br&gt;- The message &lt;em&gt;Success:You are editing the original document.&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Vendor&lt;/em&gt; field&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Vendor&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button.&lt;br&gt;Select a vendor (eg: select vendor with full name &lt;em&gt;VendorUp&lt;/em&gt;) &lt;br&gt;Click &lt;em&gt;Select Vendor&lt;/em&gt; button.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected Vendor is added under &lt;em&gt;Vendor&lt;/em&gt; field: VendorUp&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Attachments&lt;/em&gt; tab&lt;br&gt;Click &lt;em&gt;Add Attachment&lt;/em&gt; button&lt;br&gt;Click &lt;em&gt;Browse&lt;/em&gt; and select the attachment. Eg: attachment2.img&lt;br&gt;Click &lt;em&gt;Upload&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The file is uploaded and dialog is closed. Also the attached file is listed in the Attachment page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message &lt;em&gt;Success:Release Component 1@1 (v1.0.0.1) updated successfully!&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc04-verify-data-after--modify-a-component-and-release-with-vendor-present"&gt;TC04: Verify data after modify a component and release with vendor present&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Continue TC03&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Summary&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Data in the tab:&lt;br&gt;- Modified On: date of modified.&lt;br&gt;- Modified By: user modified.&lt;br&gt;Data of other fields in the tab is same data before updated.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Release Overview&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;New release with version &lt;em&gt;v1.0.0.1&lt;/em&gt; is added in the release table.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;v1.0.0.1&lt;/em&gt; hyper link&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Text display with: &lt;em&gt;COMPONENT 1@1 V1.0.0.1&lt;/em&gt; at the right corner.&lt;br&gt;- At Summary tab: &lt;br&gt; + CPE ID: cpe:id:123456&lt;br&gt; + Release Vendor: display with Full Name, Short Name and URL correctly with vendor &lt;em&gt;VendorUp&lt;/em&gt; &lt;br&gt;- At Attachments tab: attachment &lt;em&gt;attachment2.img&lt;/em&gt; display in the attachment table with correct information.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Component 1@1&lt;/em&gt; hyper link&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to view screen of &lt;em&gt;Component 1@1&lt;/em&gt; component.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Attachments&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Data in the tab is same data before updated.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Vulnerabilities&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Data in the tab is same data before updated.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc05-add-and-modify-a-component-and-release-with-all-fields-filled-in"&gt;TC05: Add and modify a component and release with all fields filled in&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Components&lt;/em&gt; tab&lt;br&gt;Click &lt;em&gt;Add Component&lt;/em&gt; button&lt;br&gt;Fill in all editable fields&lt;br&gt;Click &lt;em&gt;Create Component&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Redirect to edit component screen with the message &lt;em&gt;Success:You are editing the original document.&lt;/em&gt; is displayed in the left corner.&lt;br&gt;- Create component successfully. Data match with input data.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Releases&lt;/em&gt; tab.&lt;br&gt;Click &lt;em&gt;Add Releases&lt;/em&gt; button.&lt;br&gt;At &lt;em&gt;Summary&lt;/em&gt; tab, fill in all editable fields under &lt;em&gt;Release Summary&lt;/em&gt; and &lt;em&gt;Release Repository&lt;/em&gt;.&lt;br&gt;Click &lt;em&gt;Create Release&lt;/em&gt; button.&lt;br&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to edit release screen.&lt;br&gt;Created release successfully. Data match with input data.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Releases&lt;/em&gt; tab&lt;br&gt;Click &lt;em&gt;Click to add Releases&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog &lt;em&gt;Link Releases&lt;/em&gt; is displayed.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input search name into textbox&lt;br&gt;Click &lt;em&gt;Search&lt;/em&gt; button&lt;br&gt;Select 3 releases.&lt;br&gt;Click &lt;em&gt;Link Releases&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected release is displayed under &lt;em&gt;Linked Releases&lt;/em&gt; section.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Packages&lt;/em&gt; tab&lt;br&gt;Click &lt;em&gt;Add Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog &lt;em&gt;Link Packages&lt;/em&gt; is displayed.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input an exist orphan package name into textbox.&lt;br&gt;Click &lt;em&gt;Search&lt;/em&gt; button.&lt;br&gt;Select a package.&lt;br&gt;Click &lt;em&gt;Link Packages&lt;/em&gt; button.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected package is displayed under &lt;em&gt;Linked Packages&lt;/em&gt; table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Clearing Details&lt;/em&gt; tab&lt;br&gt;Fill in all editable fields&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;ECC Details&lt;/em&gt; tab&lt;br&gt;Fill in all editable fields&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Attachments&lt;/em&gt; tab&lt;br&gt;Click &lt;em&gt;Add Attachment&lt;/em&gt; button&lt;br&gt;Click &lt;em&gt;Browse&lt;/em&gt; and select the attachment. &lt;em&gt;Eg&lt;/em&gt;: attachment3.xlsx&lt;br&gt;Click &lt;em&gt;Upload&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The file is uploaded and dialog is closed. Also the attached file is listed in the Attachment page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- &lt;em&gt;Success:Release {componentName} ({version}) updated successfully!&lt;/em&gt; message is displayed.&lt;br&gt;- Redirect to the view release screen.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check all fields of the release by click tabs: &lt;em&gt;Summary, Linked Releases, Linked Packages, Clearing Details and Attachments&lt;/em&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are filled in correctly, match with input data.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Edit Release&lt;/em&gt; button, modify some fields.&lt;br&gt;Eg: &lt;br&gt;- &lt;em&gt;Version&lt;/em&gt; field ( in &lt;em&gt;Summary&lt;/em&gt; tab): rename version name_updated&lt;br&gt; - &lt;em&gt;ECC Status&lt;/em&gt; field (in &lt;em&gt;ECC Details&lt;/em&gt; tab): Approved.&lt;br&gt;Click &lt;em&gt;Update Release&lt;/em&gt; button.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are updated successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc06-delete-a-component-that-is-first-linked-to-a-project-and-then-not-and-a-project"&gt;TC06: Delete a component that is first linked to a project and then not, and a project&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Create a new component&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt; component with name &lt;em&gt;Component @1234&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Component is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Add a new release to this component&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt; release &lt;em&gt;Rel1&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Release is added successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Create a new project &lt;em&gt;P1&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Add the linked release &lt;em&gt;Rel1&lt;/em&gt; to project &lt;em&gt;P1&lt;/em&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Release linked successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Components&lt;/em&gt; portlet.&lt;br&gt;Search component &lt;em&gt;Component @1234&lt;/em&gt; by name at advanced search.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Component &lt;em&gt;Component @1234&lt;/em&gt; display on the result table.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click delete icon of component &lt;em&gt;Component @1234&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;A warning &lt;em&gt;The component Component @1234 cannot be deleted, since it contains 1 releases. Please delete the releases first.&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;OK&lt;/em&gt; button in the warning dialog.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog is closed, component is not deleted&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Components&lt;/em&gt; portlet.&lt;br&gt;Search for the component &lt;em&gt;Component @1234&lt;/em&gt; and click hyper link of component &lt;em&gt;Component @1234&lt;/em&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;View screen of &lt;em&gt;Component @1234&lt;/em&gt; component is display&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Release&lt;/em&gt; Overview.&lt;br&gt;Click Delete icon button of release &lt;em&gt;Rel1&lt;/em&gt;.&lt;br&gt;Click &lt;em&gt;Delete Release&lt;/em&gt; button in the dialog.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Dialog &lt;em&gt;Delete Releases&lt;/em&gt; is displayed.&lt;br&gt;- Delete the release is failure.&lt;br&gt;- The message: &lt;em&gt;I could not delete the release, since it is used by another component (release) or project&lt;/em&gt; display.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Go to project &lt;em&gt;P1&lt;/em&gt;, delete project &lt;em&gt;P1&lt;/em&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The project is deleted successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Go to component &lt;em&gt;Component @1234&lt;/em&gt;, at &lt;em&gt;Release Overview&lt;/em&gt; tab, click Delete icon button of release &lt;em&gt;Rel1&lt;/em&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Show message: &lt;em&gt;Do you really want to delete the release {componentName} ({version}) ?&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Release is deleted successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;13&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Edit Component&lt;/em&gt; button.&lt;br&gt;Click &lt;em&gt;Delete Component&lt;/em&gt; button.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog is displayed with message: &lt;em&gt;Do you really want to delete the component {componentName} ?&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;14&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete Component&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Component is deleted successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc07-add-new-attachments-to-an-existing-release-and-delete-attachments"&gt;TC07: Add new attachments to an existing release and delete attachments&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for an existing component (e.g. created in TC01) and click &lt;em&gt;Release Overview&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The list of releases are displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click edit icon in the Action column of release version that needs a new attachment. &lt;em&gt;Eg:&lt;/em&gt; release &lt;em&gt;Rel1&lt;/em&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Edit release &lt;em&gt;Rel1&lt;/em&gt; page is displayed.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Attachments&lt;/em&gt; tab&lt;br&gt;Click &lt;em&gt;Add Attachment&lt;/em&gt; button&lt;br&gt;Click &lt;em&gt;Browse&lt;/em&gt; and select several attachments.&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt; 5 attachment files (att1, att2, att3, att4, att5)&lt;/td&gt;
 &lt;td style="text-align: left"&gt;File names are displayed in the dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete&lt;/em&gt; button near some files not to be added.&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt; delete 2 attachment files (att1, att3)&lt;/td&gt;
 &lt;td style="text-align: left"&gt;File names are removed from the list&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Upload&lt;/em&gt; button for the remaining files.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The attached file are listed in the &lt;em&gt;Attachment&lt;/em&gt; page: att2, att4, att5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Change some &lt;em&gt;Attachment type&lt;/em&gt; to real type, e.g. &lt;em&gt;source file, clearing report, CLI,&amp;hellip;&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Type changed successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Release &lt;em&gt;Ree1&lt;/em&gt; is updated correctly.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Edit Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Success:You are editing the original document.&lt;/em&gt; message is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Attachments&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Attachments&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click delete icon to delete an attachment&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Show message: &lt;em&gt;Do you really want to delete attachment {attachmentName}({attachmentId})?&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete Attachment button&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Attachment is deleted successfully, data of attachment is removed from attachment table.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Release Ree1 is updated correctly with message &lt;em&gt;Success: Release {componentName}({version}) updated successfully!&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc08-duplicate-an-existing-release"&gt;TC08: Duplicate an existing release&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for an existing component with release with all fields filled in (Eg: created in TC05) and click &lt;em&gt;Release Overview&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The list of releases are displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Duplicate&lt;/em&gt; button under Action column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The page changes to create duplicate release screen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check all fields from copied release&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- &lt;em&gt;Summary&lt;/em&gt; tab:&lt;br&gt; + &lt;em&gt;CPE ID&lt;/em&gt; field: blank&lt;br&gt; + Remain fields are unchanged (exclude disable fields).&lt;br&gt;- &lt;em&gt;Linked Releases&lt;/em&gt; tab: there is no linked release.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Change the &lt;em&gt;Version&lt;/em&gt; field and fill in a &lt;em&gt;CPE ID&lt;/em&gt;.&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt;  Version: ver_duplicate&lt;br&gt; CPE ID: CPE ID_duplicate&lt;br&gt;Click &lt;em&gt;Create Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Redirect to edit release screen.&lt;br&gt;- Create duplicate release is success with message: &lt;em&gt;Success:You are editing the original document.&lt;/em&gt;&lt;br&gt;- Data of duplicate release is correct.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Modify some other fields.&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt; Release Date: 2023-06-12. &lt;br&gt;Click &lt;em&gt;Clearing Details&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Clearing Details&lt;/em&gt; page is displayed and does not contain any field from copied release&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The release is updated successfully with data correctly&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click component name link on top of the page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Summary page for the component is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Release Overview&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The new copied release is listed among previous releases&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc09-search-for-and-create-a-new-vendor-for-a-new-release"&gt;TC09: Search for and create a new vendor for a new release&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Components&lt;/em&gt; portlet&lt;br&gt;At advanced Search, search for an existing component.&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt; input &lt;em&gt;Comp1&lt;/em&gt; in the Component Name text box.&lt;br&gt;Click &lt;em&gt;Search&lt;/em&gt; button.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Component &lt;em&gt;Comp1&lt;/em&gt; display in the result table.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click edit icon in Actions column of component &lt;em&gt;Comp1&lt;/em&gt;.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Edit screen of component &lt;em&gt;Comp1&lt;/em&gt; is displayed with message: &lt;em&gt;Success:You are editing the original document&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Releases&lt;/em&gt; tab&lt;br&gt;Click &lt;em&gt;Add Releases&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The page changes to &lt;em&gt;New Release Edit&lt;/em&gt; page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in a release &lt;em&gt;Version&lt;/em&gt; and &lt;em&gt;CPE ID&lt;/em&gt;&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;br&gt; + Version: @1.0.2&lt;br&gt; + CPE ID: moshiano_002&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Vendor&lt;/em&gt; field&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Vendor&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Vendor&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Create New Vendor&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in &lt;em&gt;Full name&lt;/em&gt;, &lt;em&gt;Short name&lt;/em&gt; and &lt;em&gt;URL&lt;/em&gt;&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;br&gt;Full Name: Fullvendor_0909&lt;br&gt;Short Name: Short_ven090&lt;br&gt;URL: &lt;a href="https://github.com/"&gt;https://github.com/&lt;/a&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Vendor&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog closes and the new vendor is displayed in release &lt;em&gt;Vendor&lt;/em&gt; field with full name &lt;em&gt;Fullvendor_0909&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Release&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to edit release page with the message &lt;em&gt;Success:You are editing the original document.&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click component name link on top of the page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Summary page for the component is displayed. The new vendor for the new release, as well as existing vendors from previous releases are listed under &lt;em&gt;Vendors&lt;/em&gt; field for the component&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc10-link-a-release-to-the-project-in-view-component-page-and-check-used-by-projects"&gt;TC10: Link a release to the project in view component page and check used by projects&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for an existing component with release and click &lt;em&gt;Release Overview&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The list of releases are displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Link Project&lt;/em&gt; button under Action column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog &lt;em&gt;Link Release to Project&lt;/em&gt; is displayed with &lt;em&gt;Link to Project&lt;/em&gt; button is disabled&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button then choose a project to link&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Link to Project&lt;/em&gt; button on the dialog is enabled&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Link to Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;The release {component name} ({version}) has been successfully linked to project {project name}&lt;/em&gt;&lt;br&gt;&lt;em&gt;Click &lt;ins&gt;here&lt;ins&gt;&lt;/em&gt; &lt;em&gt;to edit the release relation as well as the project mainline state in the project.&lt;/em&gt; message is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;here&lt;/em&gt; hyperlink in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to the &lt;em&gt;edit project&lt;/em&gt; page with the release was linked (displayed on &lt;em&gt;License Clearing&lt;/em&gt; page)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Re-open the release at view page and click &lt;em&gt;Summary&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Used by project information is updated correspondingly&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc11-link-a-release-to-a-project-in-the-view-release-page"&gt;TC11: Link a release to a project in the view release page&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for an existing component with release and click &lt;em&gt;Release Overview&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The list of releases are displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;a release name&lt;/em&gt; hyperlink. Eg: release R1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to the &lt;em&gt;view release&lt;/em&gt; page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Link to Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog &lt;em&gt;Link Release to Project&lt;/em&gt; is displayed with &lt;em&gt;Link to Project&lt;/em&gt; button is disabled&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button then choose a project to link&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Link to Project&lt;/em&gt; button on the dialog is enabled&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Link to Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;The release {component name} ({version}) has been successfully linked to project {project name}&lt;/em&gt;&lt;br&gt;&lt;em&gt;Click &lt;ins&gt;here&lt;ins&gt;&lt;/em&gt; &lt;em&gt;to edit the release relation as well as the project mainline state in the project.&lt;/em&gt; message is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;here&lt;/em&gt; hyperlink in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to the &lt;em&gt;edit project&lt;/em&gt; page with the release was linked (displayed on &lt;em&gt;License Clearing&lt;/em&gt; page)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc12-import-a-new-component-by-spdxxml-rdf-file"&gt;TC12: Import a new component by .spdx/.xml/ .rdf file&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Components&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Components&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Import SBOM&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;A dialog &lt;em&gt;Upload SBOM&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Choose a &lt;strong&gt;&lt;em&gt;.spdx&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;.xml&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;.rdf&lt;/em&gt;&lt;/strong&gt; file by clicking on the &lt;em&gt;Browse&lt;/em&gt; button or drop/draft a file into the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The message is displayed in the dialog: &lt;br&gt; &lt;em&gt;The new Component and new Release will be created, do you want to import? &lt;br&gt; New Component: {new component names} &lt;br&gt; New Release: {new release names}&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Import&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog is closed. New releases and new components are imported successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc13-export-components-without-releases"&gt;TC13: Export components without releases&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Components&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Components&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Export Spreadsheet&lt;/em&gt; button and choose &lt;em&gt;Components only&lt;/em&gt; option&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- A new file with name&amp;rsquo;s format &lt;em&gt;components-{yyyy}-{mm}-{dd}.xlsx&lt;/em&gt; is downloaded&lt;br&gt;- The content of the downloaded file includes information of all components in the system&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc14-export-components-with-releases"&gt;TC14: Export components with releases&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Components&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Components&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Export Spreadsheet&lt;/em&gt; button and choose &lt;em&gt;Components with releases&lt;/em&gt; option&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- New file with name &lt;em&gt;components-{yyyy}-{mm}-{dd}.xlsx&lt;/em&gt; is downloaded.&lt;br&gt;- The content of the downloaded file includes information of all components and releases in the system&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc15-create-a-clearing-request-for-a-release"&gt;TC15: Create a clearing request for a release&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for an existing component with releases and click &lt;em&gt;Release Overview&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The list of releases are displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Edit&lt;/em&gt; button under &lt;em&gt;Action&lt;/em&gt; column. Eg: edit release R1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to &lt;em&gt;view release&lt;/em&gt; page and the message &lt;em&gt;Success:You are editing the original document.&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Attachments&lt;/em&gt; tab, then add a source file (Eg: .rdf file) with &lt;em&gt;Type&lt;/em&gt; is &lt;em&gt;Source file&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The data is updated correspondingly&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Release&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The message &lt;em&gt;Success:Release {release name} updated successfully!&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Clearing details&lt;/em&gt; tab, then click &lt;em&gt;Fossology Process&lt;/em&gt; icon beside &lt;em&gt;Clearing State&lt;/em&gt; field and wait for the process to finish&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The message &lt;em&gt;The FOSSology process already finished. You should find the resulting report as attachment at this release.&lt;/em&gt; is displayed in the &lt;em&gt;Fossology Process&lt;/em&gt; dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Close&lt;/em&gt; button in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog is closed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Reload this page, then click &lt;em&gt;Attachments&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;A new file is listed in &lt;em&gt;Attachments&lt;/em&gt; page with name&amp;rsquo;s format &lt;em&gt;{component name}-{version}-{yyyymmdd}-{hhmm}-SPDX.rdf&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Version 20.x with Containers</title><link>https://eclipse.dev/sw360/docs/deployment/containers/deploy-20-containers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/containers/deploy-20-containers/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;For SW360 v20 container deployments, the canonical operational guide is maintained in:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/eclipse-sw360/sw360-frontend/blob/main/README_DOCKER.md"&gt;SW360 Frontend Docker Guide (&lt;code&gt;eclipse-sw360/sw360-frontend&lt;/code&gt;)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This page intentionally stays minimal and points to the source of truth for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;compose setup and startup flow&lt;/li&gt;
&lt;li&gt;service wiring&lt;/li&gt;
&lt;li&gt;secrets and runtime configuration files&lt;/li&gt;
&lt;li&gt;Keycloak initialization and frontend integration&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docker (Compose V2) or Podman&lt;/li&gt;
&lt;li&gt;Basic container networking and volume knowledge&lt;/li&gt;
&lt;li&gt;OpenTofu/Terraform only if you bootstrap Keycloak via automation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="container-topology-high-level"&gt;Container Topology (High-Level)&lt;/h2&gt;
&lt;p&gt;Typical SW360 v20 container deployments include:&lt;/p&gt;</description></item><item><title>CouchDB External Documents</title><link>https://eclipse.dev/sw360/docs/development/dev-external-documents-with-couchdb/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-external-documents-with-couchdb/</guid><description>&lt;h2 id="motivation"&gt;Motivation&lt;/h2&gt;
&lt;p&gt;In some cases inline documents are not sufficient for storing extended information to a document. This is especially the case if these information might be relevant from outside as well.
Projects, components and releases contain attachments. The metadata of these attachments are stored as inline documents inside its parent document (which is the project, component or release).
However these attachments may be used by other documents as well, e.g. license info files which are attached to releases are used by projects to generate the overall license information for that project.
In such cases an external document might be the better model. For example the attachment usage can be stored along the metadata without touching the owner document on update.&lt;/p&gt;</description></item><item><title>Database migration using Costco</title><link>https://eclipse.dev/sw360/docs/development/dev-database-migration-using-costco/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-database-migration-using-costco/</guid><description>&lt;h3 id="praeamble"&gt;Praeamble&lt;/h3&gt;
&lt;p&gt;Please note that database migrations are done now in python scripts at&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/eclipse/sw360/tree/master/scripts/migrations"&gt;https://github.com/eclipse/sw360/tree/master/scripts/migrations&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;keeping the following page because Costco might be useful for development / testing / quick adaptations.&lt;/p&gt;
&lt;h3 id="problem"&gt;Problem&lt;/h3&gt;
&lt;p&gt;The main problem with changing field names in thrift is that existing documents in the couchdb need adjustments. Unfortunately, the futon interface of the couchdb does not offer bulk edits. As a consequence, looking into every document is tedious, for more than 100 documents, maybe unfeasible.&lt;/p&gt;</description></item><item><title>Definition of Done</title><link>https://eclipse.dev/sw360/docs/development/dev-dod-and-style/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-dod-and-style/</guid><description>&lt;h2 id="policy"&gt;Policy&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Review points should involve one person from another angle (not just the person you were sitting together with anyways)&lt;/li&gt;
&lt;li&gt;No self merging of pull requests&lt;/li&gt;
&lt;li&gt;Limit items in review to 5, try to coordinate&lt;/li&gt;
&lt;li&gt;Using Github assignments to issues or pull requests&lt;/li&gt;
&lt;li&gt;Open review items require conversation&lt;/li&gt;
&lt;li&gt;Every change must be proposed in the form of a pull request (no commits to main without review)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="definition-of-done"&gt;Definition of Done&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;File headers in file OK&lt;/p&gt;</description></item><item><title>Filtering in Portlets</title><link>https://eclipse.dev/sw360/docs/development/dev-filtering-in-portlets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-filtering-in-portlets/</guid><description>&lt;p&gt;For the filters that are shown for components and listings, there are some options:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;Keyword search&lt;/strong&gt; works directly on the table shown on the main right area. For example in the components portlet, this is in components/view.jsp.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;filters&lt;/strong&gt; actually result in a new search request, when hitting apply filters button. The project portlet reads the fields and creates a map. Then, &lt;code&gt;ProjectPortlet&lt;/code&gt; calls the thrift service &lt;code&gt;refineSearch()&lt;/code&gt;, which is handled in &lt;code&gt;ProjectHandler&lt;/code&gt;. This method takes the map and the user as input. The search service has a server-side JavaScript function (LuceneSearchView) defined for this particular filter in &lt;code&gt;ProjectSearchHandler.java&lt;/code&gt;. This is called with the &lt;code&gt;LuceneAwareDatabaseConnector.java&lt;/code&gt;. After filtering, the visibility constraints for the requesting user are applied.&lt;/p&gt;</description></item><item><title>Fossology Integration</title><link>https://eclipse.dev/sw360/docs/development/dev-fossology-integration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-fossology-integration/</guid><description>&lt;p&gt;Basic communication with the FOSSology server is done over an SSH connection: the fossology service of SW360 executes remote commands on the FOSSology server.&lt;/p&gt;
&lt;p&gt;The commands that are executed are the bash scripts found inside &lt;code&gt;src-fossology/src/main/resources/scripts/&lt;/code&gt;, they are copied into the home directory of the ssh user (either manually or through the admin portlet).
See &lt;a href="Fossology-Setup"&gt;Setup of connection with Fossology&lt;/a&gt; for configuration details.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\&lt;span style="color:#555"&gt;-&lt;/span&gt; src&lt;span style="color:#555"&gt;-&lt;/span&gt;fossology&lt;span style="color:#555"&gt;/&lt;/span&gt;src&lt;span style="color:#555"&gt;/&lt;/span&gt;main&lt;span style="color:#555"&gt;/&lt;/span&gt;resources&lt;span style="color:#555"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; \&lt;span style="color:#555"&gt;-&lt;/span&gt; scripts&lt;span style="color:#555"&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#555"&gt;|-&lt;/span&gt; duplicateUpload
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#555"&gt;|-&lt;/span&gt; folderManager
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#555"&gt;|-&lt;/span&gt; getStatusOfUpload
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#555"&gt;|-&lt;/span&gt; uploadFromSW360
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; \&lt;span style="color:#555"&gt;-&lt;/span&gt; utilsSW360
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These scripts utilize the standard command line tools to interact natively with FOSSology (these are the tools found in the src/cli folder of FOSSology, such as &lt;code&gt;cp2foss fossjobs fossupload_status fo_usergroup fo_chmod fo_folder ...&lt;/code&gt;).&lt;/p&gt;</description></item><item><title>Home Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/home-page/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/home-page/</guid><description>&lt;h2 id="sw360-project-home-page-test-cases"&gt;SW360 Project Home Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-table-requirements"&gt;General Table Requirements&lt;/h3&gt;
&lt;h4 id="reload-button"&gt;Reload Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that each of the 4 sub-tables has a reload button on the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate each of the 4 sub-tables.&lt;/li&gt;
&lt;li&gt;Check for the presence of a reload button on the top right of each table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Each table has a reload button.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pagination-buttons"&gt;Pagination Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that each table has pagination buttons on the bottom.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate each of the 4 sub-tables.&lt;/li&gt;
&lt;li&gt;Check for the presence of pagination buttons on the bottom of each table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Each table has pagination buttons.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="empty-message"&gt;Empty Message&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that if a table does not have data, it displays an empty message according to the table title.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Check each table for the presence of data.&lt;/li&gt;
&lt;li&gt;If a table is empty, verify that the appropriate empty message is displayed.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The appropriate empty message is displayed when the table is empty.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="my-projects-table"&gt;&amp;ldquo;My Projects&amp;rdquo; Table&lt;/h3&gt;
&lt;h4 id="dropdown-filter"&gt;Dropdown Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;My Projects&amp;rdquo; table has a dropdown filter with the specified values.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;My Projects&amp;rdquo; table.&lt;/li&gt;
&lt;li&gt;Check for the presence of a dropdown filter with the following values:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Role in Project:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Creator&lt;/li&gt;
&lt;li&gt;Moderator&lt;/li&gt;
&lt;li&gt;Contributor&lt;/li&gt;
&lt;li&gt;Project Owner&lt;/li&gt;
&lt;li&gt;Lead Architect&lt;/li&gt;
&lt;li&gt;Project Responsible&lt;/li&gt;
&lt;li&gt;Security Responsible&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clearing State:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Open&lt;/li&gt;
&lt;li&gt;Closed&lt;/li&gt;
&lt;li&gt;In Progress&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The dropdown filter contains the specified values.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="project-details"&gt;Project Details&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that each project in the &amp;ldquo;My Projects&amp;rdquo; table is clickable to open the project and displays the description and release counts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;My Projects&amp;rdquo; table.&lt;/li&gt;
&lt;li&gt;Click on a project to open it.&lt;/li&gt;
&lt;li&gt;Verify that the project name, version, description and release counts are displayed.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Clicking on a project opens the project details page, and the description and release counts are displayed correctly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="my-components-table"&gt;&amp;ldquo;My Components&amp;rdquo; Table&lt;/h3&gt;
&lt;h4 id="component-details"&gt;Component Details&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;My Components&amp;rdquo; table displays the component name, which is clickable to open the component, and the description.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;My Components&amp;rdquo; table.&lt;/li&gt;
&lt;li&gt;Click on a component name to open it.&lt;/li&gt;
&lt;li&gt;Verify that the component description is displayed.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Clicking on a component name opens the component details page, and the description is displayed correctly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="my-task-assignments-table"&gt;&amp;ldquo;My Task Assignments&amp;rdquo; Table&lt;/h3&gt;
&lt;h4 id="moderation-requests"&gt;Moderation Requests&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;My Task Assignments&amp;rdquo; table displays the Moderation Requests (assigned to me) document name, which is clickable to open the MR, and the status.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;My Task Assignments&amp;rdquo; table.&lt;/li&gt;
&lt;li&gt;Click on a document name to open the MR.&lt;/li&gt;
&lt;li&gt;Verify that the status is displayed.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Clicking on a document name opens the moderation request, and the status is displayed correctly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="my-task-submissions-table"&gt;&amp;ldquo;My Task Submissions&amp;rdquo; Table&lt;/h3&gt;
&lt;h4 id="moderation-requests-1"&gt;Moderation Requests&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;My Task Submissions&amp;rdquo; table displays the Moderation Requests (open by me) document name, which is clickable to open the MR, the status, and a delete icon to delete the MR.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;My Task Submissions&amp;rdquo; table.&lt;/li&gt;
&lt;li&gt;Click on a document name to open the MR.&lt;/li&gt;
&lt;li&gt;Verify that the status is displayed.&lt;/li&gt;
&lt;li&gt;Click on the delete icon to delete the MR.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Clicking on a document name opens the moderation request, the status is displayed correctly, and the delete icon allows the user to delete the MR.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="right-side-of-the-page"&gt;Right Side of the Page&lt;/h3&gt;
&lt;h4 id="my-subscriptions-list"&gt;&amp;ldquo;My Subscriptions&amp;rdquo; List&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;My Subscriptions&amp;rdquo; list contains all of the user&amp;rsquo;s subscriptions divided by different types and each item is clickable to open.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;My Subscriptions&amp;rdquo; list on the right side of the page.&lt;/li&gt;
&lt;li&gt;Click on an item in the list to open it.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Each item in the list is clickable to open the corresponding subscription.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="recent-components-list"&gt;&amp;ldquo;Recent Components&amp;rdquo; List&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Recent Components&amp;rdquo; list shows recent components and each component is clickable to open.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Recent Components&amp;rdquo; list on the right side of the page.&lt;/li&gt;
&lt;li&gt;Click on a component in the list to open it.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Each component in the list is clickable to open the component details.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="recent-releases-list"&gt;&amp;ldquo;Recent Releases&amp;rdquo; List&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; HOME-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Recent Releases&amp;rdquo; list shows recent releases and their version, and each release is clickable to open.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the SW360 project home page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Recent Releases&amp;rdquo; list on the right side of the page.&lt;/li&gt;
&lt;li&gt;Click on a release in the list to open it.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Each release in the list is clickable to open the release details.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Legacy API Access</title><link>https://eclipse.dev/sw360/docs/development/restapi/legacy/legacy-api-access/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/restapi/legacy/legacy-api-access/</guid><description>&lt;p&gt;This page keeps older authentication and token workflows for reference only.
For current guidance, use &lt;a href="https://eclipse.dev/sw360/docs/development/restapi/access/"&gt;API Access&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="legacy-browser-based-client-management"&gt;Legacy: Browser-Based Client Management&lt;/h2&gt;
&lt;p&gt;Historically, OAuth clients were managed by opening:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://&amp;lt;my_sw360_server&amp;gt;/authorization/client-management&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and issuing &lt;code&gt;POST&lt;/code&gt;/&lt;code&gt;DELETE&lt;/code&gt; requests from browser developer tools.&lt;/p&gt;
&lt;h2 id="legacy-token-header-conventions"&gt;Legacy: Token Header Conventions&lt;/h2&gt;
&lt;p&gt;Earlier guides used these token formats:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Authorization: Token &amp;lt;Token-Value&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Authorization: Bearer &amp;lt;JWT-Value&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both remain useful as historical context, but current mechanism guidance is
maintained in &lt;a href="https://eclipse.dev/sw360/docs/development/restapi/access/"&gt;API Access&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="legacy-password-grant-examples"&gt;Legacy: Password Grant Examples&lt;/h2&gt;
&lt;p&gt;Older environments frequently used direct password grant requests:&lt;/p&gt;</description></item><item><title>Licenses</title><link>https://eclipse.dev/sw360/docs/development/testcases/test-cases-licenses/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/testcases/test-cases-licenses/</guid><description>&lt;h2 id="tc01-create-a-license-with-mandatory-fields-then-edit-external-link"&gt;TC01: Create a license with mandatory fields then edit External link&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user&lt;/td&gt;
 &lt;td style="text-align: left"&gt;User successfully signed in and &lt;em&gt;Home&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Licenses&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Licenses&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;New License&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in &lt;em&gt;Fullname&lt;/em&gt; and &lt;em&gt;Shortname&lt;/em&gt; fields&lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;br&gt; - Fullname: Open Logistics Foundation License v1.3 &lt;br&gt; - Shortname: OLFL-1.3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Navigate to the license list page and the message &amp;ldquo;Success:License added successfully!&amp;rdquo; is displayed &lt;br&gt; - The new license should be added to the licenses list&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;At &lt;em&gt;Details&lt;/em&gt; tab, update &lt;em&gt;External link for more information&lt;/em&gt; field &lt;br&gt; &lt;em&gt;Eg:&lt;/em&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/testcases/test-cases-licenses/"&gt;https://eclipse.dev/sw360/docs/development/testcases/test-cases-licenses/&lt;/a&gt; &lt;br&gt; Click &lt;em&gt;Save&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- The page remains the same and the message &lt;em&gt;&amp;ldquo;Success:SUCCESS&amp;rdquo;&lt;/em&gt; is displayed &lt;br&gt; - Data of the &lt;em&gt;&amp;ldquo;External link for more information&amp;rdquo;&lt;/em&gt; field is updated correctly&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc02-create-a-license-with-all-fields"&gt;TC02: Create a license with all fields&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign in with a known &lt;em&gt;clearing admin&lt;/em&gt; user &lt;br&gt; Click &lt;em&gt;Licenses&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;New License&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in all editable fields &lt;br&gt; &lt;em&gt;Eg:&lt;/em&gt; &lt;br&gt; - Fullname: JAM License &lt;br&gt; - Shortname: Jam &lt;br&gt; - License Type: select a license type &lt;br&gt; - OSI Approved?: Yes &lt;br&gt; - Note: take a note! &lt;br&gt; - License Text: Copyright (C) YEAR by AUTHOR EMAIL Permission to use, copy and modify.&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Obligation&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Linked Obligation&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Obligation&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Screen display a dialog: &lt;em&gt;&amp;ldquo;Select License Obligations to be added.&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Select some obligations and click &lt;em&gt;Add&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The selected obligations have been added to the obligation table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Navigate to the license portlet and the message &lt;em&gt;&amp;ldquo;Success:License added successfully!&amp;quot;&lt;/em&gt; is displayed &lt;br&gt; - The new license should be added to the licenses list&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click the newly created license name hyperlink&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The details page of license is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check data of License in &lt;em&gt;Details&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Text&lt;/em&gt; tab and check data of License in &lt;em&gt;Text&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Obligations&lt;/em&gt; tab and check data of License in &lt;em&gt;Obligations&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The displayed data matches the input data&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc03-create-a-license-with-linked-obligations-then-edit-whitelist"&gt;TC03: Create a license with linked obligations then edit whitelist&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign in with a known &lt;em&gt;clearing admin&lt;/em&gt; user &lt;br&gt; Click &lt;em&gt;Licenses&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;New License&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in &lt;em&gt;Fullname&lt;/em&gt; and &lt;em&gt;Shortname&lt;/em&gt; &lt;br&gt;&lt;em&gt;Eg:&lt;/em&gt;&lt;br&gt; - Fullname: Apache License 2.0 &lt;br&gt; - Shortname: Apache-2.0&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Obligation&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Linked Obligation&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Obligation&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Screen display a dialog: &lt;em&gt;&amp;ldquo;Select License Obligations to be added&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Select some obligations and click &lt;em&gt;Add&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The selected obligations have been added to the obligation table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Navigate to the license list screen &lt;br&gt; - The new license should be added to the licenses list&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for new created license, then click &lt;em&gt;hyper link of new created license&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The details page of license is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Obligations&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Obligation&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Edit Whitelist&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Update whitelist&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Unselect the first obligation then click &lt;em&gt;Update Whitelist&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Redirect to view license page with the message &lt;em&gt;&amp;ldquo;Success:License updated successfully!&amp;rdquo;&lt;/em&gt; is displayed &lt;br&gt; - The unselected obligation is not displayed anymore on obligations table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc04-edit-license-and-remove-add-obligations"&gt;TC04: Edit License and remove/ add Obligations&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user&lt;/td&gt;
 &lt;td style="text-align: left"&gt;User successfully signed in and &lt;em&gt;Home&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Licenses&lt;/em&gt; tab &lt;br&gt; At &lt;em&gt;Quick Filter&lt;/em&gt; area, input existed license with obligations. E.g: &lt;em&gt;JAM License&lt;/em&gt; in the textbox &lt;br&gt; Click &lt;em&gt;JAM License&lt;/em&gt; license name &lt;br&gt; Click &lt;em&gt;Edit License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The update license page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Edit some editable fields &lt;br&gt; &lt;em&gt;Eg:&lt;/em&gt; &lt;br&gt; - Fullname: JAM License 2.0 &lt;br&gt; - OSI Approved?: (n/a) &lt;br&gt; - FSF Free/Libre?: Yes &lt;br&gt; - License Text: &lt;blank&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Obligation&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Delete&lt;/em&gt; icon of the first obligation in &lt;em&gt;Action&lt;/em&gt; column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The &lt;em&gt;&amp;ldquo;Delete Obligation?&amp;rdquo;&lt;/em&gt; dialog is displayed with message: &lt;em&gt;&amp;ldquo;Do you really want to delete the obligation {deleted obligation name}?&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;&amp;ldquo;Delete Obligation&amp;rdquo;&lt;/em&gt; button in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The chosen obligation is removed from the obligations table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Obligation&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Screen display a dialog: &lt;em&gt;&amp;ldquo;Select License Obligations to be added.&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Select some obligations and click &lt;em&gt;Add&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The selected obligations have been added to the obligation table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Navigate to the license details page &lt;br&gt; - Data of the obligation is updated successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click the edited license name (&lt;em&gt;JAM License 2.0&lt;/em&gt;)&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The details page of license is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check data of License in &lt;em&gt;Details&lt;/em&gt; tab, &lt;em&gt;Text&lt;/em&gt; tab and &lt;em&gt;Obligation&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The displayed data matches the input data&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc05-delete-an-existing-license"&gt;TC05: Delete an existing license&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign in with a known &lt;em&gt;clearing admin&lt;/em&gt; user &lt;br&gt; Click &lt;em&gt;Licenses&lt;/em&gt; tab &lt;br&gt; At &lt;em&gt;Quick Filter&lt;/em&gt; area, input existing license in the textbox &lt;br&gt;   &lt;em&gt;Eg:&lt;/em&gt; &amp;ldquo;License_delete&amp;rdquo; &lt;br&gt; Click &lt;em&gt;&amp;ldquo;License_delete&amp;rdquo;&lt;/em&gt; license name in the result table &lt;br&gt; Click &lt;em&gt;Edit License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The update license page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete License&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Screen display dialog with message: &lt;em&gt;&amp;ldquo;Do you really want to delete the license {licenseFullName ({licenseShortName})}?&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete License&lt;/em&gt; button in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Navigate to the license portlet and the message &lt;em&gt;&amp;ldquo;Success:License removed successfully!&amp;quot;&lt;/em&gt; is displayed &lt;br&gt; - The removed license has been removed to the license table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc06-check-export-licenses"&gt;TC06: Check Export Licenses&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user&lt;/td&gt;
 &lt;td style="text-align: left"&gt;User successfully signed in and &lt;em&gt;Home&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Licenses&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Licenses&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Export Spreadsheet&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;A dialog for opening &lt;em&gt;Licenses.xlsx&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Open the newly downloaded &lt;em&gt;Licenses.xlsx&lt;/em&gt; file in the local &lt;br&gt; Compare the number of rows with total number of entries from &lt;em&gt;Licenses&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;All licenses names are exported successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Liferay Friendly</title><link>https://eclipse.dev/sw360/docs/development/dev-liferay-friendly-url/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-liferay-friendly-url/</guid><description>&lt;p&gt;The normal generated portlet URLs containing a set of internal Liferay request parameters. &lt;br&gt;
These long URLs of links or forms are mostly not readable and its not easy to share it somewhere else.&lt;/p&gt;
&lt;p&gt;General Liferay portlet URL: &lt;br&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http://localhost:8080/web/guest/examples?p_p_id=example_WAR_ExamplePortlet&amp;amp;p_p_lifecycle=1&amp;amp;p_p_state=normal&amp;amp;p_p_mode=view&amp;amp;p_p_col_id=column-1&amp;amp;p_p_col_count=1&amp;amp;_example_WAR_ExamplePortlet_javax.portlet.action=new
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Explanation of the Liferay request parameters: &lt;br&gt;
&lt;strong&gt;p_p_id:&lt;/strong&gt; The portlet ID (example_WAR_ExamplePortlet)&lt;br&gt;
&lt;strong&gt;p_p_state:&lt;/strong&gt; Liferay windows pages state - 1 (normal) 2 (maximize) 3 (minimize) &lt;br&gt;
&lt;strong&gt;p_p_mode&lt;/strong&gt;: Mode of the portlet look like - (view) (edit) (help) &lt;br&gt;
&lt;strong&gt;p_p_lifecycle:&lt;/strong&gt; This is life cycle of portlet - 0 (render) 1 (action) 2 (server) &lt;br&gt;
&lt;strong&gt;p_p_col_id:&lt;/strong&gt; The reference ID of the column in Liferay template &lt;br&gt;
&lt;strong&gt;p_p_col_pos:&lt;/strong&gt; Specifiy the column position if the the layout having more than one columns &lt;br&gt;
&lt;strong&gt;p_p_col_count:&lt;/strong&gt; Shows the no of columns in the current layout&lt;/p&gt;</description></item><item><title>Manual Keycloak Configuration (Legacy)</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-keycloak-manual/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-keycloak-manual/</guid><description>&lt;div class="td-alert td-alert--md alert alert-important" role="alert"&gt;&lt;div class="td-alert-heading alert-heading" role="heading"&gt;Important&lt;/div&gt;
 &lt;div class="td-alert-body"&gt;
 &lt;p&gt;This document is provided for &lt;strong&gt;historical purposes&lt;/strong&gt; and to help developers
understand the logic behind the automated Terraform/OpenTofu scripts. For all
modern installations of SW360 v20+, please refer to the
&lt;a href="https://eclipse.dev/sw360/docs/deployment/deploy-keycloak-authentication/"&gt;Keycloak Authentication&lt;/a&gt; guide.&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="legacy--manual-configuration-keycloak-admin-console"&gt;Legacy / Manual Configuration (Keycloak Admin Console)&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;(Not Recommended for production environments. Use the Terraform instructions if
possible.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;These guides are here for understanding the Keycloak configuration. But the most
up-to-date and recommended way to configure Keycloak is using Terraform/OpenTofu.&lt;/p&gt;</description></item><item><title>Moderation</title><link>https://eclipse.dev/sw360/docs/development/testcases/test-cases-moderations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/testcases/test-cases-moderations/</guid><description>&lt;h2 id="tc01-accept-moderation-request-for-visible-projects-by-other-users"&gt;TC01: Accept moderation request, for visible projects by other users&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Open a first browser instance (Eg: &amp;ldquo;firefox.exe -p &amp;ldquo;profile1&amp;rdquo; -no-remote&amp;rdquo;) and sign in with a known &lt;em&gt;First&lt;/em&gt; user&lt;/td&gt;
 &lt;td style="text-align: left"&gt;User successfully signed in and &lt;em&gt;Home&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Open a second browser instance (Eg: &amp;ldquo;firefox.exe -p &amp;ldquo;profile2&amp;rdquo; -no-remote&amp;rdquo;) and sign in with a known &lt;em&gt;Second&lt;/em&gt; user&lt;/td&gt;
 &lt;td style="text-align: left"&gt;User successfully signed in and &lt;em&gt;Home&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Activate &lt;em&gt;First&lt;/em&gt; browser instance&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Instance is active&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Create a new project visible for &lt;em&gt;Second&lt;/em&gt; user &lt;br&gt; Eg: &lt;br&gt; - Name: Project is created by First user &lt;br&gt; - Project visibility: Everyone&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Activate &lt;em&gt;Second&lt;/em&gt; browser instance&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Instance is active&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for the above created project and click &lt;em&gt;Edit&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;&amp;ldquo;Success: You will create a moderation request if you update&amp;rdquo;&lt;/em&gt; message is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Edit &lt;em&gt;Description&lt;/em&gt; field or other fields &lt;br&gt; Eg: &lt;br&gt; Description: &amp;ldquo;Update description to create a moderation request!!&amp;rdquo; &lt;br&gt; Click &lt;em&gt;Update Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Create moderation request dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill in &lt;em&gt;Please comment your changes&lt;/em&gt; field &lt;br&gt; Eg: I want to update this project. Please accept for me. Thanks @@. &lt;br&gt; Click &lt;em&gt;Send moderation request&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Show message: &lt;em&gt;&amp;ldquo;Success: Moderation request was sent to update the Project {nameProject} {(version)}!&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Activate &lt;em&gt;First&lt;/em&gt; browser instance&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Instance is active&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check status of project in the &lt;em&gt;MY TASK ASSIGNMENTS&lt;/em&gt; table on &lt;em&gt;Home&lt;/em&gt; page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The above project that needs moderation is displayed with status &lt;em&gt;Pending&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Requests&lt;/em&gt; page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The moderation request of &lt;em&gt;Second&lt;/em&gt; user is displayed with state &lt;em&gt;Pending&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click the project name in the &lt;em&gt;Document Name&lt;/em&gt; column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- &lt;em&gt;&amp;ldquo;Success: You have assigned yourself to this moderation request.&amp;rdquo;&lt;/em&gt; message is displayed &lt;br&gt; - &lt;em&gt;Moderation Request Information&lt;/em&gt; page is displayed, with proposed changes from step 7 listed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;13&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input a comment in the &lt;em&gt;Comment on Moderation Decision&lt;/em&gt; box. Eg: &lt;em&gt;The request is approved&lt;/em&gt; &lt;br&gt; Click &lt;em&gt;Accept Request&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Request page display and show message: &lt;em&gt;&amp;ldquo;Success: You have accepted the moderation request&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;14&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Closed Moderation Requests&lt;/em&gt; tab &lt;br&gt; Check state of &lt;em&gt;Project is created by First user&lt;/em&gt; project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;State changed to &lt;em&gt;Approved&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;15&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check status of project in the &lt;em&gt;MY TASK ASSIGNMENTS&lt;/em&gt; table on &lt;em&gt;Home&lt;/em&gt; page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The request is removed from the table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;16&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Activate &lt;em&gt;Second&lt;/em&gt; browser instance&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Instance is active&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;17&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check status of project in the &lt;em&gt;MY TASK SUBMISSIONS&lt;/em&gt; table on &lt;em&gt;Home&lt;/em&gt; page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Status is &lt;em&gt;Approved&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;18&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Open the &lt;em&gt;Projects&lt;/em&gt; page and click on previously modified project on step 7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project &lt;em&gt;Summary&lt;/em&gt; page displayed successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;19&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check the moderation requested changes&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Changes are visible in the corresponding fields: &lt;em&gt;Description&lt;/em&gt; field was changed to &lt;em&gt;&amp;ldquo;Update description to create a moderation request!!&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc02-decline-moderation-request-for-visible-projects-by-other-users"&gt;TC02: Decline moderation request, for visible projects by other users&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1-11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Same as in TC01&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input a comment in the &lt;em&gt;Comment on Moderation Decision&lt;/em&gt; box. Eg: &lt;em&gt;The request is declined&lt;/em&gt; &lt;br&gt; Click &lt;em&gt;Decline Request&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Requests page display and show message: &lt;em&gt;&amp;ldquo;Success: You have rejected the moderation request&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;13&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Closed Moderation Requests&lt;/em&gt; tab &lt;br&gt; Check state of the above rejected project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;State changed to &lt;em&gt;Rejected&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;14&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check status of project in the &lt;em&gt;MY TASK ASSIGNMENTS&lt;/em&gt; table on &lt;em&gt;Home&lt;/em&gt; page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The request is removed from the table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;15&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Activate &lt;em&gt;Second&lt;/em&gt; browser instance&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Instance is active&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;16&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check status of project in the &lt;em&gt;MY TASK SUBMISSIONS&lt;/em&gt; table on &lt;em&gt;Home&lt;/em&gt; page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Status is &lt;em&gt;Rejected&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;17&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Open the &lt;em&gt;Projects&lt;/em&gt; page and click on previously modified project on step 7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project &lt;em&gt;Summary&lt;/em&gt; page displayed successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;18&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check the moderation requested changes&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Changes are not visible in the corresponding fields: data of the project is not changed.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc03-remove-me-from-moderators-for-moderation-request-for-visible-projects-by-other-users"&gt;TC03: Remove Me from Moderators for moderation request, for visible projects by other users&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1-11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Same as in TC01&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Remove Me from Moderators&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- &lt;em&gt;&amp;ldquo;Warning: You are the last moderator for this request, you are not allowed to unsubscribe !&amp;rdquo;&lt;/em&gt; message is displayed (assuming only &lt;em&gt;First&lt;/em&gt; user was listed under &lt;em&gt;Moderators&lt;/em&gt; column in step 10) &lt;br&gt; - Can&amp;rsquo;t remove from Moderators. Nothing to change&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;13&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input a comment in the &lt;em&gt;Comment on Moderation Decision&lt;/em&gt; box. Eg: &lt;em&gt;Decline the request.&lt;/em&gt; &lt;br&gt; Click &lt;em&gt;Decline Request&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Requests page display and show message: &lt;em&gt;&amp;ldquo;Success: You have rejected the moderation request&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;14&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Edit the project and add a new moderator (Eg: &lt;em&gt;Third&lt;/em&gt; user) under &lt;em&gt;Moderators&lt;/em&gt; field&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project updated successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;15&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Activate &lt;em&gt;Second&lt;/em&gt; browser instance&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Instance is active&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;16&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Edit the project and create a new moderation request&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Moderation request was sent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;17&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Activate &lt;em&gt;First&lt;/em&gt; browser instance&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Instance is active&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;18&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Moderation&lt;/em&gt; page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The moderation request of &lt;em&gt;Second&lt;/em&gt; user is displayed with state &lt;em&gt;Pending&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;19&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click the project name which the moderation was created in step 16&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- &lt;em&gt;&amp;ldquo;Success: You have assigned yourself to this moderation request.&amp;rdquo;&lt;/em&gt; is displayed &lt;br&gt; - &lt;em&gt;Moderation Request Information&lt;/em&gt; page is displayed, with proposed changes from step 16 listed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;20&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Remove Me from Moderators&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;&amp;ldquo;Success: You have unassigned yourself from the moderation request&amp;rdquo;&lt;/em&gt; message is displayed. Also the document is deleted from moderation list.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;21&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Login with the &lt;em&gt;Third&lt;/em&gt; user and check the &lt;em&gt;Moderation request&lt;/em&gt; in &lt;em&gt;Request&lt;/em&gt; page&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The moderation request of &lt;em&gt;Second&lt;/em&gt; user is displayed with state &lt;em&gt;Pending&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Moderation Requests</title><link>https://eclipse.dev/sw360/docs/development/dev-moderation-requests/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-moderation-requests/</guid><description>&lt;p&gt;The concept of moderation is good for two things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;to cope with a large number of potential edits on documents.&lt;/li&gt;
&lt;li&gt;to allow every user to propose edits.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Allowing every user to edit opposed to propose edits would lad to a large number of changes, potentially, not making everyone happy. As such, the changes should be reviewed by an experienced person and can be then approved.&lt;/p&gt;
&lt;h2 id="application-flow"&gt;Application Flow&lt;/h2&gt;
&lt;p&gt;A user changes a moderated document, which are component, release, project and todo&amp;rsquo;s of licenses (and the white list):&lt;/p&gt;</description></item><item><title>Packages</title><link>https://eclipse.dev/sw360/docs/development/testcases/test-cases-packages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/testcases/test-cases-packages/</guid><description>&lt;h2 id="tc01-create-a-package-with-required-fields"&gt;TC01: Create a package with required fields&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user&lt;/td&gt;
 &lt;td style="text-align: left"&gt;User successfully signed in and &lt;em&gt;Home&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Packages&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add Package&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The &lt;em&gt;Create Package&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input valid data into required fields &lt;br&gt; &lt;em&gt;Eg:&lt;/em&gt; &lt;br&gt; - Name: package1 &lt;br&gt; - Version: 1.0.0 &lt;br&gt; - Package Type: Framework &lt;br&gt; - PURL (Package URL): pkg:npm/angular-sanitize@1.8.2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Package&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- The message: &lt;em&gt;&amp;ldquo;Success: Package created successfully&amp;rdquo;&lt;/em&gt; is displayed at the left corner &lt;br&gt; - Redirect to the &lt;em&gt;Package list&lt;/em&gt; page &lt;br&gt; - The new package is added to the package list&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for the new project then click the hyperlink of the newly created package name&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to view page of the created package&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check data of all fields&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Data in all fields match with input values&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc02-create-a-package-with-all-fields"&gt;TC02: Create a package with all fields&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user &lt;br&gt; Click &lt;em&gt;Packages&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add Package&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The &lt;em&gt;Create Package&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input valid data into all editable fields&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Package&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- The message: &lt;em&gt;&amp;ldquo;Success: Package created successfully&amp;rdquo;&lt;/em&gt; is displayed at the left corner &lt;br&gt; - Redirect to the &lt;em&gt;Package list&lt;/em&gt; page &lt;br&gt; - The new package is added to the package list&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for the new package then click the hyperlink of the newly created package name&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to view page of the created package&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check data of all fields&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Data in all fields match with input values&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc03-update-some-fields-for-package"&gt;TC03: Update some fields for package&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user &lt;br&gt; Click &lt;em&gt;Component&lt;/em&gt; tab &lt;br&gt; Create a component with name is &lt;em&gt;ComponentA&lt;/em&gt; &lt;br&gt; Create a release with name is &lt;em&gt;ComponentA (1.0.1)&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Release &lt;em&gt;ComponentA (1.0.1)&lt;/em&gt; is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Packages&lt;/em&gt; tab &lt;br&gt; Create a new package with name and version are &lt;em&gt;Package1 (1.0.1)&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Package &lt;em&gt;Package1 (1.0.1)&lt;/em&gt; is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;At advanced Search, search for newly created package &lt;br&gt; &lt;em&gt;Eg:&lt;/em&gt; Package1 (1.0.1) &lt;br&gt; Click &lt;em&gt;Edit Package&lt;/em&gt; icon at &lt;em&gt;Actions&lt;/em&gt; column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Update Package&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Update data of some fields &lt;br&gt; &lt;em&gt;Eg:&lt;/em&gt; &lt;br&gt; - Version: 1.0.2 &lt;br&gt; - Homepage URL: pkg:npm/@microsoft/applicationinsights-web@2.5.11 &lt;br&gt; - Release: ComponentA (1.0.1)&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Data is filled in fields match with input values&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Package&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- The message: &lt;em&gt;&amp;ldquo;Success: Package updated successfully&amp;rdquo;&lt;/em&gt; is displayed at the left corner &lt;br&gt; - Redirect to the package list page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for the updated project then click the hyperlink of the package name&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Redirect to view page of the updated package&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check data of all fields&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Data in all fields match with data at update page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc04-link-package-to-project-with-release-of-the-package-has-not-linked-to-the-project-yet"&gt;TC04: Link package to project with release of the package has not linked to the project yet&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Create Component with name is &lt;em&gt;ComponentA&lt;/em&gt; &lt;br&gt; Create a release with name is &lt;em&gt;ComponentA (1.0.1)&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Release is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Packages&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add Package&lt;/em&gt; button &lt;br&gt;Create a new package with: &lt;br&gt; - Name: &lt;em&gt;PackageA&lt;/em&gt; &lt;br&gt; - Version: &lt;em&gt;(1.0.1)&lt;/em&gt; &lt;br&gt; - Release: &lt;em&gt;ComponentA (1.0.1)&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Package is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Project&lt;/em&gt; tab &lt;br&gt; Create project with name is &lt;em&gt;ProjectA&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;In &lt;em&gt;Edit ProjectA project&lt;/em&gt; page then click &lt;em&gt;Linked Packages&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog &lt;em&gt;Link Packages&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Input &lt;em&gt;PackageA&lt;/em&gt; in textbox then click &lt;em&gt;Search&lt;/em&gt; button &lt;br&gt; Choose &lt;em&gt;PackageA&lt;/em&gt; package then click &lt;em&gt;Link Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Information of the &lt;em&gt;PackageA&lt;/em&gt; package is displayed correctly in the table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Redirect to the &lt;em&gt;ProjectA&lt;/em&gt; project view screen &lt;br&gt; - Information of &lt;em&gt;Linked Package&lt;/em&gt; tab is correct with input data&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;License Clearing&lt;/em&gt; tab, check information of the table&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Display data of &lt;em&gt;ComponentA (1.0.1)&lt;/em&gt; release with correctly information&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc05-unlink-package-from-the-project"&gt;TC05: Unlink package from the project&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user &lt;br&gt; Click &lt;em&gt;Packages&lt;/em&gt; tab &lt;br&gt; Create a new package with name and version are &lt;em&gt;PackageA (1.0.1)&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Package is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Project&lt;/em&gt; tab &lt;br&gt; Create a project with name is &lt;em&gt;ProjectA&lt;/em&gt; and then add &lt;em&gt;PackageA&lt;/em&gt; newly created as linked package of &lt;em&gt;ProjectA&lt;/em&gt; project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;In edit project page, click &lt;em&gt;Linked Packages&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Delete&lt;/em&gt; icon of PackageA (1.0.1) package &lt;br&gt; Click &lt;em&gt;Delete Link&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Data of &lt;em&gt;PackageA (1.0.1)&lt;/em&gt; package is removed from package table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Redirect to view &lt;em&gt;ProjectA&lt;/em&gt; page &lt;br&gt; - Project &lt;em&gt;ProjectA&lt;/em&gt; is updated successfully &lt;br&gt; - Data in the &lt;em&gt;Linked Packages&lt;/em&gt; tab: &lt;em&gt;PackageA (1.0.1)&lt;/em&gt; package information is removed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc06-delete-a-package-that-is-first-linked-to-a-project-and-then-not"&gt;TC06: Delete a package that is first linked to a project and then not&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user &lt;br&gt; Click &lt;em&gt;Packages&lt;/em&gt; tab &lt;br&gt; Create a new package with name and version are &lt;em&gt;PackageA (1.0.1)&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Package is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Projects&lt;/em&gt; tab &lt;br&gt; Create a project with name is &lt;em&gt;ProjectA&lt;/em&gt; and then add &lt;em&gt;PackageA&lt;/em&gt; newly created as linked package of &lt;em&gt;ProjectA&lt;/em&gt; project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Packages&lt;/em&gt; tab &lt;br&gt; At advanced Search, search for newly created package &lt;br&gt; &lt;em&gt;Eg:&lt;/em&gt; PackageA(1.0.1) &lt;br&gt; Click &lt;em&gt;Delete Package&lt;/em&gt; icon in &lt;em&gt;Actions&lt;/em&gt; column of this package&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog &lt;em&gt;&amp;ldquo;Delete Package?&amp;rdquo;&lt;/em&gt; display with message: &lt;em&gt;&amp;ldquo;Do you really want to delete the package {packageName} ({package version})?&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete Package&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Error message is displayed: &lt;em&gt;&amp;ldquo;Package cannot be deleted!&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Unlink &lt;em&gt;PackageA&lt;/em&gt; package from &lt;em&gt;ProjectA&lt;/em&gt; project&lt;br&gt; Re-delete &lt;em&gt;PackageA(1.0.1)&lt;/em&gt; package follow steps from 3-4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Delete &lt;em&gt;PackageA&lt;/em&gt; package successfully with message &amp;ldquo;Deleted successfully!&amp;rdquo; in the dialog &lt;br&gt; - Package &lt;em&gt;PackageA(1.0.1)&lt;/em&gt; is not display in the package list table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Projects</title><link>https://eclipse.dev/sw360/docs/development/testcases/test-cases-projects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/testcases/test-cases-projects/</guid><description>&lt;h2 id="tc01-add-a-simple-project-with-no-relations-and-no-releases"&gt;TC01: Add a simple project with no relations and no releases&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user&lt;/td&gt;
 &lt;td style="text-align: left"&gt;User successfully signed in and &lt;em&gt;Home&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Projects&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Projects&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;New Project&lt;/em&gt; page is displayed with mandatory fields marked with red star: &lt;br&gt; - Summary tab: Name, Visibility, Project Type, Group &lt;br&gt; - Administration tab: Project State&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Fill mandatory &lt;em&gt;Name&lt;/em&gt; with a project name, change other fields if needed &lt;br&gt; Eg: &lt;br&gt; - Name: PROJECT_REQUIRED_FIELDS&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Navigate to the new project&amp;rsquo;s viewing screen with the message &lt;em&gt;&amp;ldquo;Success: Your project is created&amp;rdquo;&lt;/em&gt; is displayed &lt;br&gt; - New project &lt;em&gt;Summary&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Projects&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- The new project &lt;em&gt;&amp;ldquo;PROJECT_REQUIRED_FIELDS&amp;rdquo;&lt;/em&gt; should be added to the projects list &lt;br&gt; - Data of the project correctly, matches with input data&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc02-add-a-full-project-with-relations-releases-and-send-to-clearing-process"&gt;TC02: Add a full project with relations, releases and send to clearing process&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user &lt;br&gt; Click &lt;em&gt;Projects&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add Project&lt;/em&gt; button &lt;br&gt; Input Name as &amp;ldquo;A_FULL_PROJECTS&amp;rdquo; &lt;br&gt; Fill in all editable fields in &lt;em&gt;Summary&lt;/em&gt; and &lt;em&gt;Administration&lt;/em&gt; links&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the fields&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Releases And Projects&lt;/em&gt; link&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Linked Releases And Projects&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Projects&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Project&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button then select a project to be linked (Eg: created in TC01 &amp;ldquo;PROJECT_REQUIRED_FIELDS&amp;rdquo;) &lt;br&gt; Click &lt;em&gt;Link Projects&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected project is displayed under &lt;em&gt;Linked Projects&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Releases&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Release&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button &lt;br&gt; Select releases to be linked &lt;br&gt; Click &lt;em&gt;Link Releases&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected release is displayed under &lt;em&gt;Linked Releases&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Packages&lt;/em&gt; link&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Linked Packages&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Package&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button in the dialog &lt;br&gt; Select an orphan package to be added then click &lt;em&gt;Link Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected release is displayed under &lt;em&gt;Linked Packages&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Navigate to the new project&amp;rsquo;s viewing screen with the message &lt;em&gt;&amp;ldquo;Success: Your project is created&amp;rdquo;&lt;/em&gt; is displayed &lt;br&gt; - New project &lt;em&gt;Summary&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Projects&lt;/em&gt; tab &lt;br&gt; At &lt;em&gt;Advanced Search&lt;/em&gt; area, input &lt;em&gt;&amp;ldquo;A_FULL_PROJECTS&amp;rdquo;&lt;/em&gt; in the &lt;em&gt;&amp;ldquo;Project Name&amp;rdquo;&lt;/em&gt; textbox &lt;br&gt; Click &lt;em&gt;Search&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The new project should be added to the projects list with data correctly, matches with input data&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;In new project, check &lt;em&gt;Clearing Status&lt;/em&gt; by hovering mouse over the numbers&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The message should be &lt;em&gt;{number} Releases out of {total number} have approved clearing reports (including sub-projects).&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;13&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Clearing Request&lt;/em&gt; icon under &lt;em&gt;Actions&lt;/em&gt; column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog &lt;em&gt;Create Clearing Request&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;14&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Choose clearing team email id, &lt;em&gt;Clearing Type&lt;/em&gt; and &lt;em&gt;Preferred Clearing Date&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The data in the fields is displayed as the selected data&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;15&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Request&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The message: &lt;br&gt; &lt;em&gt;Clearing Request {clearing request id} created successfully! &lt;br&gt; Clearing team will confirm on the agreed clearing date.&lt;/em&gt; &lt;br&gt; is displayed in the dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;16&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Close&lt;/em&gt; button in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog is closed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;17&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Re-click the &lt;em&gt;Create Clearing Request&lt;/em&gt; icon under &lt;em&gt;Actions&lt;/em&gt; column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The &lt;em&gt;View Clearing Request&lt;/em&gt; dialog is displayed with: &lt;br&gt; - Requesting User: {requested user} &lt;br&gt; - Created on: {created request date} &lt;br&gt; - Preferred Clearing Date: {displayed as input data} &lt;br&gt; - Clearing Team: {email of chosen clearing team} &lt;br&gt; - Priority: LOW &lt;br&gt; - Request Status: NEW&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;18&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Close&lt;/em&gt; button in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog is closed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc03-add-a-project-with-releases-no-relations-remove-a-release"&gt;TC03: Add a project with releases, no relations, remove a release&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Sign In with a known user &lt;br&gt; Click &lt;em&gt;Projects&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add Project&lt;/em&gt; button &lt;br&gt; Fill mandatory Name with a project name, change other fields if needed &lt;br&gt; Click &lt;em&gt;Linked Releases And Projects&lt;/em&gt; link &lt;br&gt; Click &lt;em&gt;Add Projects&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Project&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; and select the project to be linked (Eg: created in TC01 &amp;ldquo;PROJECT_REQUIRED_FIELDS&amp;rdquo;) &lt;br&gt; Click &lt;em&gt;Link Projects&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected project is displayed under &lt;em&gt;Linked Projects&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete&lt;/em&gt; icon to delete the linked project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message is displayed: &lt;em&gt;&amp;ldquo;Do you really want to remove the link to project {linked project name}?&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete Link&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The project is removed from the list of &lt;em&gt;Linked Projects&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Releases&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Release&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; by name and select a release to be added then click &lt;em&gt;Link Releases&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected release is displayed under &lt;em&gt;Linked Releases&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete&lt;/em&gt; icon to delete the linked release&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message is displayed: &lt;em&gt;&amp;ldquo;Do you really want to remove the link to release {linked release name}?&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete Link&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The release is removed from the list of &lt;em&gt;Linked Releases&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Packages&lt;/em&gt; link &lt;br&gt; Click &lt;em&gt;Add Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search Release dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button in the dialog &lt;br&gt; Select an orphan package to be added then click &lt;em&gt;Link Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected release is displayed under &lt;em&gt;Linked Packages&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete&lt;/em&gt; icon to delete the linked package&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Message is displayed: &lt;em&gt;&amp;ldquo;Do you really want to remove the link to package {linked package name}?&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete Link&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The release is removed from the list of &lt;em&gt;Linked Packages&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;13&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Navigate to the new project&amp;rsquo;s viewing screen with the message &lt;em&gt;&amp;ldquo;Success: Your project is created&amp;rdquo;&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;14&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Projects&lt;/em&gt; tab&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The new project should be added to the projects list&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;15&lt;/td&gt;
 &lt;td style="text-align: left"&gt;In newly created project, check &lt;em&gt;Clearing Status&lt;/em&gt; by hovering mouse over the numbers of the project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The message should be 0 Releases out of 0 have approved clearing reports (including sub-projects)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc04-delete-a-project-that-is-first-linked-to-another-project-and-then-not-linked"&gt;TC04: Delete a project that is first linked to another project and then not linked&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Create a new project with name is &lt;em&gt;Child Project&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Child Project&lt;/em&gt; project is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Create another project with name is &lt;em&gt;Parent Project&lt;/em&gt; and add previously created &lt;em&gt;Child Project&lt;/em&gt; as linked project of &lt;em&gt;Parent Project&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Parent Project&lt;/em&gt; project is created successfully with linked project is &lt;em&gt;Child Project&lt;/em&gt; project&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Projects&lt;/em&gt; tab &lt;br&gt; At &lt;em&gt;Advanced Search&lt;/em&gt; area, input &lt;em&gt;Child Project&lt;/em&gt; in the &lt;em&gt;Project Name&lt;/em&gt; textbox &lt;br&gt; Click &lt;em&gt;Search&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Child Project&lt;/em&gt; project display in the result table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete&lt;/em&gt; icon to delete &lt;em&gt;Child Project&lt;/em&gt; project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Screen display dialog with message: &lt;em&gt;&amp;ldquo;Do you really want to delete the project Child Project?&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Delete Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Display message in the dialog: &lt;em&gt;&amp;ldquo;The project cannot be deleted, since it is used by another project!&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Cancel&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and &lt;em&gt;Child Project&lt;/em&gt; project wasn&amp;rsquo;t deleted in the table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Go to &lt;em&gt;Parent Project&lt;/em&gt; project in the project table and delete it &lt;br&gt; Click &lt;em&gt;Delete&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Parent Project&lt;/em&gt; project is deleted successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Go to &lt;em&gt;Child Project&lt;/em&gt; project in the project table and re-delete it&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Child Project&lt;/em&gt; project is deleted successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc05-modify-an-existing-project-with-relations-releases-and-send-to-clearing-process"&gt;TC05: Modify an existing project with relations, releases and send to clearing process&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Create a new project. Eg: &lt;em&gt;PROJECT_REQUIRED_FIELDS&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The project is created successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Project&lt;/em&gt; tab &lt;br&gt; At &lt;em&gt;Advanced Search&lt;/em&gt; area, search for a simple project &lt;br&gt; Eg: project created in TC01: input &amp;ldquo;PROJECT_REQUIRED_FIELDS&amp;rdquo; in the &amp;ldquo;Project Name&amp;rdquo; textbox &lt;br&gt; Click &lt;em&gt;Search&lt;/em&gt; button &lt;br&gt; Click &lt;em&gt;Edit&lt;/em&gt; icon of &amp;ldquo;PROJECT_REQUIRED_FIELDS&amp;rdquo; project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Summary&lt;/em&gt; page is displayed &lt;br&gt; Screen display message: &lt;em&gt;&amp;ldquo;Success: You are editing the original document.&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Update project name to &lt;em&gt;PROJECT_REQUIRED_FIELDS_updated&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Values are entered in the field&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Releases And Projects&lt;/em&gt; link&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Linked Releases And Projects&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Projects&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Project&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;6&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; and select the project to be linked (Eg: created in TC02 &amp;ldquo;A_FULL_PROJECTS&amp;rdquo;) &lt;br&gt; Click &lt;em&gt;Link Projects&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected project is displayed under &lt;em&gt;Linked Projects&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;7&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Releases&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Release&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;8&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button &lt;br&gt; Select an release to be added then click &amp;ldquo;Link Releases&amp;rdquo; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected release is displayed under &lt;em&gt;Linked Releases&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;9&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Linked Packages&lt;/em&gt; link&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Linked Packages&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;10&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Add Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Search Release&lt;/em&gt; dialog is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;11&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Search&lt;/em&gt; button in the dialog &lt;br&gt; Select an orphan package to be added then Click &lt;em&gt;Link Packages&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Dialog is closed and selected release is displayed under &lt;em&gt;Linked Packages&lt;/em&gt; section&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;12&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Update Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Navigate to the project&amp;rsquo;s viewing screen with the message &lt;em&gt;&amp;ldquo;Success: Project {project name} updated successfully!&amp;rdquo;&lt;/em&gt; is displayed &lt;br&gt; - The project is updated according to the input data&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;13&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Projects&lt;/em&gt; tab &lt;br&gt; At &lt;em&gt;Advanced Search&lt;/em&gt; area, input &amp;ldquo;PROJECT_REQUIRED_FIELDS_updated&amp;rdquo; in the &lt;em&gt;Project Name&lt;/em&gt; textbox &lt;br&gt; Click &lt;em&gt;Search&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The project name &lt;em&gt;PROJECT_REQUIRED_FIELDS_updated&lt;/em&gt; is displayed in the project list table&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;14&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Clearing Request&lt;/em&gt; icon under &lt;em&gt;Actions&lt;/em&gt; column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog &lt;em&gt;Create Clearing Request&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;15&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Choose clearing team emaild id, &lt;em&gt;Clearing Type&lt;/em&gt; and &lt;em&gt;Preferred Clearing Date&lt;/em&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The data in the fields is displayed as the selected data&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;16&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Request&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The message: &lt;br&gt; &lt;em&gt;Clearing Request {clearing request id} created successfully! &lt;br&gt; Clearing team will confirm on the agreed clearing date.&lt;/em&gt; &lt;br&gt; is displayed in the dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;17&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Close&lt;/em&gt; button in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog is closed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;18&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Re-click the &lt;em&gt;Create Clearing Request&lt;/em&gt; icon under &lt;em&gt;Actions&lt;/em&gt; column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The &lt;em&gt;View Clearing Request&lt;/em&gt; dialog is displayed with: &lt;br&gt; - Requesting User: {requested user} &lt;br&gt; - Created on: {created request date} &lt;br&gt; - Preferred Clearing Date: {displayed as input data} &lt;br&gt; - Clearing Team: {email of chosen clearing team} &lt;br&gt; - Priority: LOW &lt;br&gt; - Request Status: NEW&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;19&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Close&lt;/em&gt; button in the dialog&lt;/td&gt;
 &lt;td style="text-align: left"&gt;The dialog is closed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc06-add-and-modify-a-project-with-all-project-fields-filled-in"&gt;TC06: Add and modify a project with all project fields filled in&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Projects&lt;/em&gt; tab &lt;br&gt; Click &lt;em&gt;Add Project&lt;/em&gt; button &lt;br&gt; Input Name as &lt;em&gt;A_FULL_BASIC_PROJECT&lt;/em&gt; &lt;br&gt; Fill in all editable fields in &lt;em&gt;Summary&lt;/em&gt; and &lt;em&gt;Administration&lt;/em&gt; links&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;em&gt;Projects&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Create Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Navigate to the new project&amp;rsquo;s viewing screen with the message &lt;em&gt;&amp;ldquo;Success: Your project is created&amp;rdquo;&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Click &lt;em&gt;Edit Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Summary page is displayed with message: &lt;em&gt;&amp;ldquo;Success: You are editing the original document.&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;5&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Modify some fields &lt;br&gt; Eg: &lt;br&gt; - Name: A_FULL_BASIC_PROJECT_changed &lt;br&gt; - Clearing state (in Administration tab): In Progress &lt;br&gt; Click &lt;em&gt;Update Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- Screen is display view page and the message &lt;em&gt;&amp;ldquo;Success: Project A_FULL_BASIC_PROJECT_changed updated successfully!.&amp;rdquo;&lt;/em&gt; is displayed &lt;br&gt; - Values are updated successfully&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tc07-duplicate-an-existing-project"&gt;TC07: Duplicate an existing project&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: right"&gt;Step&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Action&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Result&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;1&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Search for an existing project with all fields filled in (Eg: created in TC02 A_FULL_PROJECTS project) and click &lt;em&gt;Duplicate&lt;/em&gt; button under &lt;em&gt;Actions&lt;/em&gt; column&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Project &lt;em&gt;Information&lt;/em&gt; page is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;2&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check all fields from copied project&lt;/td&gt;
 &lt;td style="text-align: left"&gt;- In the Administration tab, the default for the &lt;em&gt;Clearing State&lt;/em&gt; field is &lt;em&gt;Open&lt;/em&gt;&lt;br&gt; - Other fields are duplicated, including &lt;em&gt;Linked Projects&lt;/em&gt;, &lt;em&gt;Linked Releases&lt;/em&gt; and &lt;em&gt;Linked Packages&lt;/em&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;3&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Change version. Eg: 1.0.5-duplicate &lt;br&gt; Click &lt;em&gt;Create Project&lt;/em&gt; button&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Navigate to the new project&amp;rsquo;s viewing screen with the message &lt;em&gt;&amp;ldquo;Success: Your project is created&amp;rdquo;&lt;/em&gt; is displayed&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: right"&gt;4&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Check all fields&lt;/td&gt;
 &lt;td style="text-align: left"&gt;All fields were copied successfully, except the new name and &lt;em&gt;Project Clearing State&lt;/em&gt; of the project&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Release and Versioning</title><link>https://eclipse.dev/sw360/docs/development/dev-releasing-sw360/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-releasing-sw360/</guid><description>&lt;p&gt;We have the following main principles for versioning and releases. We consider &lt;a href="http://semver.org/"&gt;semantic versioning&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Given a version number MAJOR.MINOR.PATCH, increment the:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MAJOR version when you make incompatible API changes,&lt;/li&gt;
&lt;li&gt;MINOR version when you add functionality in a backwards-compatible manner, and&lt;/li&gt;
&lt;li&gt;PATCH version when you make backwards-compatible bug fixes or security fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;with the following implementation in our project:&lt;/p&gt;</description></item><item><title>Roles and Authorization</title><link>https://eclipse.dev/sw360/docs/development/dev-role-authorisation-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-role-authorisation-model/</guid><description>&lt;p&gt;Like any other system, SW360 allows for setting different levels of access for different users. Technically, the decision when user should be able to see or to do something happens (generally) on the backend server. This ensures consistency between the REST API and the portal application.&lt;/p&gt;
&lt;p&gt;For setting roles of a user, the Liferay control panel is being used (Admin menu -&amp;gt; Control Panel -&amp;gt; Users and Organisations -&amp;gt; Users -&amp;gt; select one user and Edit -&amp;gt; Roles). Setting access at individual records happens in the edit view of that record.&lt;/p&gt;</description></item><item><title>Semantic Commits</title><link>https://eclipse.dev/sw360/docs/development/dev-semantic-commits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-semantic-commits/</guid><description>&lt;h2 id="the-reason-and-benefit-of-semantic-commit-messages"&gt;The reason and benefit of semantic commit messages&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;automatic generating of the changelog&lt;/li&gt;
&lt;li&gt;simple navigation through git history (e.g. ignoring style changes)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="semantic-commit-message-structure"&gt;Semantic commit message structure&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;type&amp;gt;(&amp;lt;scope&amp;gt;): &amp;lt;commit message&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Signed-off-by: Name &amp;lt;email address&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="the-following--are-supported"&gt;The following &lt;types&gt; are supported&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;feat (new feature for the user, not a new feature for build script)&lt;/li&gt;
&lt;li&gt;fix (bug fix for the user, not a fix to a build script)&lt;/li&gt;
&lt;li&gt;docs (changes to the documentation)&lt;/li&gt;
&lt;li&gt;style (formatting, missing semi colons, etc; no production code change)&lt;/li&gt;
&lt;li&gt;refactor (refactoring production code, eg. renaming a variable)&lt;/li&gt;
&lt;li&gt;test (adding missing tests, refactoring tests; no production code change)&lt;/li&gt;
&lt;li&gt;chore (updating grunt tasks etc; no production code change)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example &lt;scope&gt; values:&lt;/p&gt;</description></item><item><title>Testing Frameworks</title><link>https://eclipse.dev/sw360/docs/development/dev-testing-frameworks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-testing-frameworks/</guid><description>&lt;p&gt;The implementation of complicated rules is not always easy to read.
A good way to document and explain the behaviour of rule engines are natural language tests.
A frame work we use for that is &lt;a href="http://jgiven.org/"&gt;jgiven&lt;/a&gt;.
We write the tests using the [dataprovider] (&lt;a href="https://github.com/TNG/junit-dataprovider"&gt;https://github.com/TNG/junit-dataprovider&lt;/a&gt;) runner.
This is basically a runner that allows to use parametrized tests.&lt;/p&gt;
&lt;p&gt;The basic testing frame work is still &lt;a href="http://junit.org/"&gt;JUnit4&lt;/a&gt;, assertions are made using &lt;a href="https://code.google.com/p/hamcrest/wiki/Tutorial"&gt;hamcrest&lt;/a&gt; and we mock complicated input classes with &lt;a href="http://mockito.org/"&gt;mockito&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Troubleshooting</title><link>https://eclipse.dev/sw360/docs/development/dev-troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-troubleshooting/</guid><description>&lt;h3 id="development-problems-building-sw360portal-with-maven"&gt;Development: problems building sw360portal with maven?&lt;/h3&gt;
&lt;p&gt;Before building the sw360portal with maven, ensure that the following components are installed in the development environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A git client&lt;/li&gt;
&lt;li&gt;Apache Maven 3.0.X&lt;/li&gt;
&lt;li&gt;Apache Thrift 0.9.3&lt;/li&gt;
&lt;li&gt;Java 1.8.X&lt;/li&gt;
&lt;li&gt;CouchDB, at least 1.5 (only if the tests will be executed locally)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="development-problems-using-eclipse"&gt;Development: problems using Eclipse?&lt;/h3&gt;
&lt;p&gt;Please do not use Eclipse, because the integration of Apache Thrift is an open issue and we found no plugin for Eclipse to solve the shown compiler errors.
Recommended is IntelliJ IDEA or NetBeans.&lt;/p&gt;</description></item><item><title>Upgrading from Version 18 to Version 20</title><link>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade-18-to-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade-18-to-20/</guid><description>&lt;h2 id="overview-and-major-architectural-changes"&gt;Overview and Major Architectural Changes&lt;/h2&gt;
&lt;p&gt;Upgrading from SW360 Version 18 to Version 20 introduces several major
architectural shifts. Please read the following notices carefully before
beginning the upgrade process:&lt;/p&gt;
&lt;div class="td-alert td-alert--md alert alert-warning" role="alert"&gt;&lt;div class="td-alert-heading alert-heading" role="heading"&gt;Warning&lt;/div&gt;
 &lt;div class="td-alert-body"&gt;
 &lt;p&gt;&lt;strong&gt;New Frontend Architecture:&lt;/strong&gt; The legacy Liferay UI has been unequivocally
removed. SW360 v20 is entirely powered by a modern React/Next.js frontend.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Search &amp;amp; Indexing Engine Changes:&lt;/strong&gt; The search engine has been heavily
redesigned to support full-text search. You &lt;strong&gt;must&lt;/strong&gt; upgrade CouchDB to
version &amp;gt;= 3.5 &lt;strong&gt;and&lt;/strong&gt; install the new &lt;code&gt;couchdb-nouveau&lt;/code&gt; package alongside it.&lt;/p&gt;</description></item><item><title>Using RequireJS fro Javascript Modules</title><link>https://eclipse.dev/sw360/docs/development/dev-using-requirejs-for-javascript-modules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-using-requirejs-for-javascript-modules/</guid><description>&lt;p&gt;Today most of the javascript code runs in the global namespace. This increases the risk of overwriting symbols in the global namespace due to different libraries and snippets.&lt;/p&gt;
&lt;h2 id="goal"&gt;Goal&lt;/h2&gt;
&lt;p&gt;We want to use RequireJS (&lt;a href="http://requirejs.org/"&gt;http://requirejs.org/&lt;/a&gt;) to modularize our code and to have clear namespaces for each component. In addition some of the code may be reused more easily. Other advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;libraries like jquery or datatables can be imported by name but without a specified version&lt;/li&gt;
&lt;li&gt;if necessary, specific versions can be imported for parts of the page&lt;/li&gt;
&lt;li&gt;it is very easy to only load needed dependencies&lt;/li&gt;
&lt;li&gt;good support of webjars due to webjars-locator. Webjars a are automatically accessible through RequireJS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-use---example"&gt;How to use - Example&lt;/h2&gt;
&lt;p&gt;There is a new jspf-file to be included in jsps to enable RequireJS support:&lt;/p&gt;</description></item><item><title>Vulnerabilities</title><link>https://eclipse.dev/sw360/docs/administrationguide/vulnerabilitymanagement/vulnerabilities/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/vulnerabilitymanagement/vulnerabilities/</guid><description>&lt;p&gt;A vulnerability is a security flaw, glitch, or weakness found in software code
that could be exploited by an attacker (threat source). The Vulnerabilities page
lists all the vulnerabilities that are available in SW360. The Vulnerabilities
are typically synced from SVM tools but can also be manually managed. They are
listed independently without any relation to their linked projects/components/releases initially.&lt;/p&gt;
&lt;p&gt;To open the Vulnerabilities page, click on the &lt;strong&gt;Vulnerabilities tab&lt;/strong&gt; from the
main menu.&lt;/p&gt;</description></item><item><title>Backend Logging</title><link>https://eclipse.dev/sw360/docs/development/dev-backend-logging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-backend-logging/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;SW360&amp;rsquo;s backend runs two kinds of applications on the same Tomcat instance:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Kind&lt;/th&gt;
 &lt;th&gt;Examples&lt;/th&gt;
 &lt;th&gt;Framework&lt;/th&gt;
 &lt;th&gt;Logging stack&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Thrift servlet WARs&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;vmcomponents.war&lt;/code&gt;, &lt;code&gt;components.war&lt;/code&gt;, &lt;code&gt;schedule.war&lt;/code&gt;, &lt;code&gt;licenses.war&lt;/code&gt;, …&lt;/td&gt;
 &lt;td&gt;Plain Java servlets (&lt;code&gt;web.xml&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;Log4j2, via &lt;code&gt;log4j-1.2-api&lt;/code&gt; bridge&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Spring Boot WARs&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;resource.war&lt;/code&gt; (REST API), &lt;code&gt;authorization.war&lt;/code&gt; (OAuth)&lt;/td&gt;
 &lt;td&gt;Spring Boot (&lt;code&gt;@SpringBootApplication&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;Log4j2, via &lt;code&gt;spring-boot-starter-log4j2&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Both use &lt;strong&gt;Log4j2&lt;/strong&gt; under the hood, but they are configured differently.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="spring-boot-applications-rest-api--authorization-server"&gt;Spring Boot applications (REST API &amp;amp; Authorization Server)&lt;/h2&gt;
&lt;p&gt;The REST resource-server (&lt;code&gt;resource.war&lt;/code&gt;) and authorization-server
(&lt;code&gt;authorization.war&lt;/code&gt;) are full Spring Boot applications deployed as WARs.
Spring Boot&amp;rsquo;s &lt;code&gt;LoggingSystem&lt;/code&gt; manages Log4j2 and reads log levels from
&lt;code&gt;application.yml&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Committer Pathway &amp; Community Governance</title><link>https://eclipse.dev/sw360/docs/development/dev-committer-pathway/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-committer-pathway/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;Eclipse SW360&lt;/strong&gt; project is an open source community operating under the
&lt;a href="https://www.eclipse.org/projects/dev_process/"&gt;Eclipse Development Process (EDP)&lt;/a&gt;.
We follow an open, merit-based governance model where any active contributor
from any organization can become a Committer or Project Lead.&lt;/p&gt;
&lt;p&gt;We warmly welcome and invite contributors, maintainers, and adopters from
diverse organizations (such as Siemens, Toshiba, CARIAD, Bosch, and wider open
source community members) to participate and take active roles in project
stewardship.&lt;/p&gt;</description></item><item><title>Architecture</title><link>https://eclipse.dev/sw360/docs/development/dev-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-architecture/</guid><description>&lt;h1 id="sw360-architecture-documentation"&gt;SW360 Architecture Documentation&lt;/h1&gt;
&lt;p&gt;This document describes the high-level architecture of the SW360 project, its
major components, and how they interact.&lt;/p&gt;
&lt;h2 id="system-overview"&gt;System Overview&lt;/h2&gt;
&lt;p&gt;SW360 is a web-based application designed to manage software components,
licenses, and security vulnerabilities. It follows a multi-tier architecture
consisting of a React-based frontend, a Spring Boot-based REST API
(Authorization and Resource Servers), a Thrift-based backend service layer, and
a CouchDB database. Integration with Keycloak is supported for enterprise-grade
Identity and Access Management.&lt;/p&gt;</description></item><item><title>BR-PROJ-002: License Clearing Tab Status Badges &amp; Color Representation</title><link>https://eclipse.dev/sw360/docs/businessrules/projects/br-proj-002-license-clearing-tab-badges/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/businessrules/projects/br-proj-002-license-clearing-tab-badges/</guid><description>&lt;h1 id="br-proj-002-license-clearing-tab-status-badges--color-representation"&gt;BR-PROJ-002: License Clearing Tab Status Badges &amp;amp; Color Representation&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Standard Classification:&lt;/strong&gt; Definitional Rule / UI Presentation Invariant&lt;br&gt;
&lt;strong&gt;Target Entity:&lt;/strong&gt; &lt;code&gt;Project&lt;/code&gt;, &lt;code&gt;Release&lt;/code&gt;, Project Details UI (&lt;code&gt;License Clearing&lt;/code&gt; Tab)&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Approved&lt;br&gt;
&lt;strong&gt;Enforcement Points:&lt;/strong&gt; Frontend UI Views (&lt;code&gt;ListView.tsx&lt;/code&gt;, &lt;code&gt;TreeView.tsx&lt;/code&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="1-executive-summary--formal-statements"&gt;1. Executive Summary &amp;amp; Formal Statements&lt;/h2&gt;
&lt;h3 id="11-formal-statement-rulespeak--ears"&gt;1.1 Formal Statement (RuleSpeak® / EARS)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;While&lt;/strong&gt; an authenticated user is viewing an accessible &lt;code&gt;Project&lt;/code&gt; in details mode under the &lt;strong&gt;License Clearing&lt;/strong&gt; tab:
&lt;ul&gt;
&lt;li&gt;The system &lt;strong&gt;shall render&lt;/strong&gt; a hierarchical table displaying all linked releases (direct and transitive sub-project releases).&lt;/li&gt;
&lt;li&gt;The system &lt;strong&gt;shall display&lt;/strong&gt; state indicator badges with abbreviations:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;(PS)&lt;/code&gt; for &lt;strong&gt;Project Clearing State&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(CS)&lt;/code&gt; for &lt;strong&gt;Release Clearing State&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; rendering the &lt;code&gt;(PS)&lt;/code&gt; badge for a project row, the system &lt;strong&gt;shall apply&lt;/strong&gt; the exact background color mapped to the project clearing state:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Closed&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Green&lt;/strong&gt; (&lt;code&gt;#68C17C&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;In-progress&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Yellow&lt;/strong&gt; (&lt;code&gt;#FFD351&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Open&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Red&lt;/strong&gt; (&lt;code&gt;#E6717C&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Not Applicable&lt;/code&gt; / &lt;code&gt;Unknown&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Grey&lt;/strong&gt; (&lt;code&gt;#DEE2E6&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; rendering the &lt;code&gt;(CS)&lt;/code&gt; badge for a release row, the system &lt;strong&gt;shall apply&lt;/strong&gt; the exact background color mapped to the release clearing state:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NEW_CLEARING&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Red&lt;/strong&gt; (&lt;code&gt;#E6717C&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UNDER_CLEARING&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Yellow&lt;/strong&gt; (&lt;code&gt;#FFD350&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SENT_TO_CLEARING_TOOL&lt;/code&gt; or &lt;code&gt;SCAN_AVAILABLE&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Orange&lt;/strong&gt; (&lt;code&gt;#F7941E&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REPORT_AVAILABLE&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Blue&lt;/strong&gt; (&lt;code&gt;#0D6EFD&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;INTERNAL_USE_SCAN_AVAILABLE&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Purple&lt;/strong&gt; (&lt;code&gt;#9370DB&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;APPROVED&lt;/code&gt; $\rightarrow$ &lt;strong&gt;Green&lt;/strong&gt; (&lt;code&gt;#69C17D&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;null&lt;/code&gt;, &lt;code&gt;undefined&lt;/code&gt;, or unmapped $\rightarrow$ &lt;strong&gt;Grey&lt;/strong&gt; (&lt;code&gt;#DEE2E6&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; a user hovers over any &lt;code&gt;(PS)&lt;/code&gt; or &lt;code&gt;(CS)&lt;/code&gt; badge, the system &lt;strong&gt;shall render a tooltip&lt;/strong&gt; displaying the full, human-readable state name.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-purpose--risk-mitigated"&gt;1.2 Purpose &amp;amp; Risk Mitigated&lt;/h3&gt;
&lt;p&gt;Compact color-coded badge representations allow project managers, architects, and clearing officers to assess compliance and clearing readiness across deeply nested dependency trees at a single glance. Standardizing the color mappings prevents misinterpretation of clearing risk across different pages and ensures accessibility via hover tooltips.&lt;/p&gt;</description></item><item><title>Configurations</title><link>https://eclipse.dev/sw360/docs/administrationguide/configurations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/configurations/</guid><description>&lt;p&gt;In SW360 v20, system administrators can manage most application settings
directly through the user interface. This eliminates the need for manual
configuration file edits for many standard adjustments.&lt;/p&gt;
&lt;h2 id="admin--configurations"&gt;Admin &amp;gt; Configurations&lt;/h2&gt;
&lt;p&gt;The primary interface for application settings is found under &lt;strong&gt;Admin &amp;gt;
Configurations&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Update Persistence&lt;/strong&gt;: Changes made here are stored in the database and
typically take effect immediately across the application.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Toggles &amp;amp; Parameters&lt;/strong&gt;: Most features can be activated or deactivated using
simple toggles, some are available as text fields and some with comma separted
pills for generating dropdowns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All the configurations are arranged in 3 columns, Name, Value and Description.
Name being a human friendly name of the property, Value holding the current
value of the property and Description being a human friendly description for the
property. They are divided accross two sections:&lt;/p&gt;</description></item><item><title>Projects Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/projects-main/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/projects-main/</guid><description>&lt;h2 id="sw360-main-projects-page-test-cases"&gt;SW360 Main Projects Page Test Cases&lt;/h2&gt;
&lt;h3 id="advance-search-on-the-left-hand"&gt;Advance Search on the Left Hand&lt;/h3&gt;
&lt;h4 id="search-fields"&gt;Search Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the advance search on the left hand contains the specified search fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the advance search section on the left hand.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following search fields:
&lt;ul&gt;
&lt;li&gt;Project name&lt;/li&gt;
&lt;li&gt;Project version&lt;/li&gt;
&lt;li&gt;Project type (one of Customer Project, Internal Project, Product, Service, Inner Source, Cloud Backend)&lt;/li&gt;
&lt;li&gt;Project Responsible (Email)&lt;/li&gt;
&lt;li&gt;Group (dynamically generated by project group)&lt;/li&gt;
&lt;li&gt;State (one of Active, Phaseout, Unknown)&lt;/li&gt;
&lt;li&gt;Clearing State (one of Open, In Progress, Closed)&lt;/li&gt;
&lt;li&gt;Tag&lt;/li&gt;
&lt;li&gt;Additional Data&lt;/li&gt;
&lt;li&gt;A checkbox &amp;ldquo;Exact Match&amp;rdquo; with a Search button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified search fields are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="search-behavior"&gt;Search Behavior&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the search behavior based on the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the advance search section on the left hand.&lt;/li&gt;
&lt;li&gt;Enter search criteria in the search fields.&lt;/li&gt;
&lt;li&gt;Perform a search without checking the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;li&gt;Verify that the endpoint has &amp;ldquo;luceneSearch=true&amp;rdquo; and uses full-text search.&lt;/li&gt;
&lt;li&gt;Check the &amp;ldquo;Exact Match&amp;rdquo; checkbox and perform a search.&lt;/li&gt;
&lt;li&gt;Verify that the endpoint has &amp;ldquo;luceneSearch=false&amp;rdquo; and uses exact match.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The search behavior changes based on the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="buttons-in-middle"&gt;Buttons in Middle&lt;/h3&gt;
&lt;h4 id="add-project-button"&gt;&amp;ldquo;Add Project&amp;rdquo; Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Add Project&amp;rdquo; button opens a form to create a new project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Project&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A form to create a new project is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="import-sbom-dropdown"&gt;&amp;ldquo;Import SBOM&amp;rdquo; Dropdown&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Import SBOM&amp;rdquo; dropdown opens a popup to import SBOM files in SPDX format and CycloneDX format.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Import SBOM&amp;rdquo; dropdown.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A popup to import SBOM files in SPDX format and CycloneDX format is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="export-spreadsheet-dropdown"&gt;&amp;ldquo;Export Spreadsheet&amp;rdquo; Dropdown&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Export Spreadsheet&amp;rdquo; dropdown generates an Excel of the search result with either &amp;ldquo;Projects only&amp;rdquo; or &amp;ldquo;Projects with linked release&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Perform a search using the advance search fields.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Export Spreadsheet&amp;rdquo; dropdown and select an option.&lt;/li&gt;
&lt;li&gt;Verify that the exported sheet has restricted data based on the advance search values from the left panel.&lt;/li&gt;
&lt;li&gt;Check if the file is downloaded or if a message is shown indicating that an email will be sent based on server configuration.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Excel file is generated with the correct data, and the file is either downloaded or an email is sent based on server configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="table-in-middle"&gt;Table in Middle&lt;/h3&gt;
&lt;h4 id="page-size"&gt;Page Size&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the table can change page size, with a default of 10.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the table in the middle.&lt;/li&gt;
&lt;li&gt;Change the page size and verify the default is 10.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table page size can be changed, and the default is 10.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="print-button"&gt;&amp;ldquo;Print&amp;rdquo; Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Print&amp;rdquo; button on the right prints the Table HTML component to the browser.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Print&amp;rdquo; button on the right of the table.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Print&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Table HTML component is printed to the browser.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-project-name"&gt;Column &amp;ldquo;Project name&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Project name&amp;rdquo; column displays the project name and version (version in brackets), and is a clickable link to open the project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Project name&amp;rdquo; column in the table.&lt;/li&gt;
&lt;li&gt;Click on a project name to open the project.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The project name and version are displayed, and clicking on it opens the project.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-description"&gt;Column &amp;ldquo;Description&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Description&amp;rdquo; column displays a truncated description of the project, if any, otherwise it is empty.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Description&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The truncated description of the project is displayed, or it is empty if no description is available.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-project-responsible"&gt;Column &amp;ldquo;Project Responsible&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Project Responsible&amp;rdquo; column displays a truncated list of project responsible users, if any, otherwise it is empty.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Project Responsible&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The truncated list of project responsible users is displayed, or it is empty if no responsible users are available.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-state"&gt;Column &amp;ldquo;State&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;State&amp;rdquo; column shows &amp;ldquo;PS|CS&amp;rdquo; buttons.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;State&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;PS|CS&amp;rdquo; buttons are displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-license-clearing"&gt;Column &amp;ldquo;License Clearing&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;License Clearing&amp;rdquo; column shows Clearing Done/Total releases counts for the project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;License Clearing&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Clearing Done/Total releases counts are displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-actions"&gt;Column &amp;ldquo;Actions&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Actions&amp;rdquo; column shows the specified buttons.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Actions&amp;rdquo; column in the table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following buttons:
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Edit&amp;rdquo;: to open the project edit page&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Clearing Request&amp;rdquo;: to open &amp;ldquo;Clearing Request&amp;rdquo; popup to either create a new Clearing Request or display the current Clearing Request&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Duplicate&amp;rdquo;: to duplicate the project into a new one, which opens the add project page with values populated&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Delete&amp;rdquo;: to open a popup showing Project Name, version, linked projects count, linked release count, and a comment box for the reason to delete, with a delete button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified buttons are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pagination-components"&gt;Pagination Components&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the table bottom has pagination components.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Locate the table in the middle.&lt;/li&gt;
&lt;li&gt;Scroll to the bottom of the table and verify the presence of pagination components.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Pagination components are present at the bottom of the table.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Search Vulnerabilities</title><link>https://eclipse.dev/sw360/docs/administrationguide/vulnerabilitymanagement/user-check-vulnerabilities-for-your-project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/vulnerabilitymanagement/user-check-vulnerabilities-for-your-project/</guid><description>&lt;p&gt;The CVE-Search service of SW360 checks for vulnerabilities that affect releases
present in SW360. The CVE-search service runs automatically at the time that has
been scheduled by one of the SW360-admins. Typically, this will happen at night.
So, in the beginning, SW360 does not know any vulnerabilities for your project.&lt;/p&gt;
&lt;h2 id="vulnerabilities-in-the-project-view"&gt;Vulnerabilities in the Project View&lt;/h2&gt;
&lt;p&gt;After a CVE-search run has been finished, you can see the number of
vulnerabilities associated with your project in the &lt;strong&gt;Projects List&lt;/strong&gt;. To that
end, open the &lt;strong&gt;Projects&lt;/strong&gt; menu and click on your project:&lt;/p&gt;</description></item><item><title>System Requirements</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-requirements/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-requirements/</guid><description>&lt;p&gt;For deploying SW360 v20, the following hardware and software requirements apply.
Note that the architecture has shifted from a monolithic Liferay setup to a
microservices-based stack (Spring Boot Backend, Next.js Frontend, Keycloak
Authentication).&lt;/p&gt;
&lt;p&gt;Recommended deployment method is &lt;a href="https://eclipse.dev/sw360/docs/deployment/containers/"&gt;container-based&lt;/a&gt; for
ease of management.&lt;/p&gt;
&lt;h2 id="hardware-and-infrastructure"&gt;Hardware and Infrastructure&lt;/h2&gt;
&lt;h3 id="development--test-instances"&gt;Development / Test instances&lt;/h3&gt;
&lt;p&gt;For personal development or small test instances with minimal data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CPU&lt;/strong&gt;: 2 cores&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAM&lt;/strong&gt;: 8GB (4GB for Tomcat/Backend, 1GB for Keycloak, 1GB for Frontend,
2GB for OS/CouchDB)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt;: 40GB SSD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network&lt;/strong&gt;: 10Mbit Ethernet link&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="staging-instances"&gt;Staging instances&lt;/h3&gt;
&lt;p&gt;Testing and working with medium data sets for staging and pre-productive
testing. Requires enough RAM to run a full stack including Keycloak and
monitoring services.&lt;/p&gt;</description></item><item><title>Workflows</title><link>https://eclipse.dev/sw360/docs/userguide/bestpractices/workflows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/bestpractices/workflows/</guid><description>&lt;p&gt;This page is one of the basic user workflow documentation pages. It can give orientation how the sw360 can be used - as guidance or orientation. There is no particular need to follow these workflows, it is just one way. Workflows are shown as flow charts.&lt;/p&gt;
&lt;h3 id="create-component-and-release"&gt;Create Component and Release&lt;/h3&gt;
&lt;p&gt;So, the user would like to create an entry for zlib-1.2.8 for example in sw360. The main thing to know (see page basic concepts)is that sw360 separates releases from components: the release is the zlib-1.2.8 but the component is the zlib. By this approach, components as a kind of container type in sw360, holding several releases.&lt;/p&gt;</description></item><item><title>SW360 User Frequently Asked Questions</title><link>https://eclipse.dev/sw360/docs/userguide/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/faq/</guid><description>&lt;h5 id="q-who-should-be-listed-as-moderator"&gt;&lt;strong&gt;Q&lt;/strong&gt;: Who should be listed as Moderator?&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;: Moderator are persons who need to review changes done on certain items (project, component, release or attachment) by persons who do not have the user right to actually do these changes. For BT moderators are the persons with the role &amp;lsquo;Software Clearing Site Representative&amp;rsquo;.&lt;/p&gt;
&lt;h5 id="q-who-should-be-listed-as-contributor"&gt;&lt;strong&gt;Q&lt;/strong&gt;: Who should be listed as Contributor?&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;: By default only the owner (or creator) of an item (project, component, release) is allowed to modify this item. Often it is useful that additional people are allowed to edit an item. These additional people (software architects, developers, additional experts) should get listed as contributors.&lt;/p&gt;</description></item><item><title>Naming a Component</title><link>https://eclipse.dev/sw360/docs/userguide/bestpractices/component-naming/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/bestpractices/component-naming/</guid><description>&lt;p&gt;&lt;strong&gt;The name is the most important criteria to identify software components. Unfortunately there is no common naming scheme available.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="usage-and-handling-of-components"&gt;Usage and Handling of Components&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;If you create a component entry, most likely you will go ahead with a release entry, otherwise, the component stays an empty shell&lt;/li&gt;
&lt;li&gt;Uploading source packages / actual software as attachment makes sense at the release, not at the component&lt;/li&gt;
&lt;li&gt;If you have created a component and release entry, you can go ahead and assign a vendor to a release.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This very clear approach enables a number of issues, please keep the following goals in mind:&lt;/p&gt;</description></item><item><title>Attachment File Types</title><link>https://eclipse.dev/sw360/docs/userguide/bestpractices/user-attachment-file-types/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/bestpractices/user-attachment-file-types/</guid><description>&lt;p&gt;SW360 maintains attachments for projects, components and releases. Currently, SW360 cannot automatically detect these types and is dependent on that users select the appropriate type accordingly. If not, some functionality will not properly kick of that uses such attachments.&lt;/p&gt;
&lt;p&gt;Also, maybe some of the types are redundant by now and are just legacy ideas that should be reviewed after two years now.&lt;/p&gt;
&lt;p&gt;In summary, the following the types currently are as follows:&lt;/p&gt;</description></item><item><title>Record Creation</title><link>https://eclipse.dev/sw360/docs/userguide/bestpractices/good-record-creation-structure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/bestpractices/good-record-creation-structure/</guid><description>&lt;h2 id="how-to-create-component-entries"&gt;How to Create (Component) Entries?&lt;/h2&gt;
&lt;p&gt;In order to have a clean and useful catalogue, data hygiene is very important. The main goal is to have clean component / release datasets that allow for versatile use and seamless integration with other systems (see the Handling of Components above). When creating a component, please consider the following rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What is the name of the vendor, the name of the component and what is the release designator?&lt;/li&gt;
&lt;li&gt;For the Vendor
&lt;ul&gt;
&lt;li&gt;Does a CPE entry exist?
&lt;ul&gt;
&lt;li&gt;Look here: &lt;a href="https://nvd.nist.gov/cpe.cfm"&gt;&lt;span style="color:red"&gt;↗&lt;/span&gt; https://nvd.nist.gov/cpe.cfm&lt;/a&gt; or &lt;a href="http://scap.nist.gov/specifications/cpe/dictionary.html"&gt;&lt;span style="color:red"&gt;↗&lt;/span&gt; http://scap.nist.gov/specifications/cpe/dictionary.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use the same writing as found in the CPE dictionary&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A CPE does not exist?
&lt;ul&gt;
&lt;li&gt;Who is the copyright holder: an organization?
&lt;ul&gt;
&lt;li&gt;Use this organization name without &amp;ldquo;inc&amp;rdquo;, &amp;ldquo;Gmbh&amp;rdquo;, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A person
&lt;ul&gt;
&lt;li&gt;Look at the CPE dictionaries for example&lt;/li&gt;
&lt;li&gt;They use first name last name with &amp;ldquo;_&amp;rdquo;, for example &amp;ldquo;Wedge_Antilles&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For a component
&lt;ul&gt;
&lt;li&gt;Again, does a CPE entry exist?&lt;/li&gt;
&lt;li&gt;Separate Component name from release designation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For a release
&lt;ul&gt;
&lt;li&gt;Do not repeat the component name&lt;/li&gt;
&lt;li&gt;Use the release designation as provided by the software package&lt;/li&gt;
&lt;li&gt;Avoid prefixes, such as &amp;ldquo;version&amp;rdquo;, &amp;ldquo;v&amp;rdquo; etc&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For special cases:
&lt;ul&gt;
&lt;li&gt;If you upload a part of a release software package, create a &lt;strong&gt;separate&lt;/strong&gt; release for this&lt;/li&gt;
&lt;li&gt;For example &amp;ldquo;2.0-MODIFIED&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Consider that leaving items out from a software release is actually a modification&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-create-vendors"&gt;How to Create Vendors&lt;/h2&gt;
&lt;p&gt;In order to have a vendor record in the sw360, then choosing a name is important. The vendor in SW360 is the real &amp;ldquo;manufacturer&amp;rdquo; independently from where you download it.&lt;/p&gt;</description></item><item><title>Add Project</title><link>https://eclipse.dev/sw360/docs/development/completiontests/projects-create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/projects-create/</guid><description>&lt;h2 id="sw360-add-project-page-test-cases"&gt;SW360 &amp;ldquo;Add Project&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="new-page-opening"&gt;New Page Opening&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that upon clicking &amp;ldquo;Add Project,&amp;rdquo; a new page opens with a message on top &amp;ldquo;Creating new Project.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Projects page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Project&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new page opens with the message &amp;ldquo;Creating new Project&amp;rdquo; on top.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="general-information-section"&gt;General Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;General Information&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;General Information&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Project Name (required)&lt;/li&gt;
&lt;li&gt;Version&lt;/li&gt;
&lt;li&gt;Project visibility (required) (one of Private, Me and Moderators, Group and Moderators, Everyone (default))&lt;/li&gt;
&lt;li&gt;Created By (no edit)&lt;/li&gt;
&lt;li&gt;Project Type (required) (one of Customer Project, Internal Project, Product (default), Service, Inner Source, Cloud Backend)&lt;/li&gt;
&lt;li&gt;Tag&lt;/li&gt;
&lt;li&gt;Description (textbox)&lt;/li&gt;
&lt;li&gt;Domain (one of Application Software, Documentation, Embedded Software, Hardware, Test and Diagnostics)&lt;/li&gt;
&lt;li&gt;Vendor (click for popup) with a clear button beneath&lt;/li&gt;
&lt;li&gt;Modified On (no edit)&lt;/li&gt;
&lt;li&gt;Modified By (no edit)&lt;/li&gt;
&lt;li&gt;3 vulnerability checkboxes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="external-urls-section"&gt;External URLs Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;External URLs&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;External URLs&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to External URLs&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the new row:
&lt;ul&gt;
&lt;li&gt;External URL key on the left&lt;/li&gt;
&lt;li&gt;Type to get default values&lt;/li&gt;
&lt;li&gt;External URL value on the right&lt;/li&gt;
&lt;li&gt;Row delete button on the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="roles-section"&gt;Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Roles&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Group (required) (default user department) with a clear button beneath&lt;/li&gt;
&lt;li&gt;Project Manager (single value)&lt;/li&gt;
&lt;li&gt;Project Owner (single value)&lt;/li&gt;
&lt;li&gt;Owner Accounting Unit&lt;/li&gt;
&lt;li&gt;Owner Billing Group&lt;/li&gt;
&lt;li&gt;Owner Country&lt;/li&gt;
&lt;li&gt;Lead Architect (single value)&lt;/li&gt;
&lt;li&gt;Moderators (multi value)&lt;/li&gt;
&lt;li&gt;Contributors (multi value)&lt;/li&gt;
&lt;li&gt;Security Responsibles (multi value)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-roles-section"&gt;Additional Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Roles&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Roles&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional roles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="external-ids-section"&gt;External Ids Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;External Ids&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;External Ids&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to External Ids&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the new row:
&lt;ul&gt;
&lt;li&gt;External Id key on the left&lt;/li&gt;
&lt;li&gt;Type to get default values&lt;/li&gt;
&lt;li&gt;External Id value on the right&lt;/li&gt;
&lt;li&gt;Row delete button on the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-data-section"&gt;Additional Data Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Data&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="administration-tab"&gt;Administration Tab&lt;/h3&gt;
&lt;h4 id="clearing-section"&gt;Clearing Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Clearing&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Clearing&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Project Clearing State (one of Open, In Progress, Closed)&lt;/li&gt;
&lt;li&gt;Clearing Team dropdown (values from backend)&lt;/li&gt;
&lt;li&gt;Deadline for pre-evaluation (date)&lt;/li&gt;
&lt;li&gt;Clearing summary (text area)&lt;/li&gt;
&lt;li&gt;Special risk Open Source Software (text area)&lt;/li&gt;
&lt;li&gt;General risk 3rd party software (text area)&lt;/li&gt;
&lt;li&gt;Special risks 3rd party software (text area)&lt;/li&gt;
&lt;li&gt;Sales and delivery channels (text area)&lt;/li&gt;
&lt;li&gt;Remarks additional requirements (text area)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="lifecycle-section"&gt;Lifecycle Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Lifecycle&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Lifecycle&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Project State (required) (one of Active, Phaseout, Unknown)&lt;/li&gt;
&lt;li&gt;System test begin (date)&lt;/li&gt;
&lt;li&gt;System test end (date)&lt;/li&gt;
&lt;li&gt;Delivery start date (date)&lt;/li&gt;
&lt;li&gt;Phase-out date (date)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="license-info-header-section"&gt;License Info Header Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;License Info Header&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;License Info Header&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a text area with a default license info header and a bottom on the top right of the area to reset to default text.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The text area with the default license info header and the reset button are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-releases-and-projects-tab"&gt;Linked Releases And Projects Tab&lt;/h3&gt;
&lt;h4 id="linked-projects-section"&gt;Linked Projects Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Linked Projects&amp;rdquo; section in the Linked Releases And Projects Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Linked Projects&amp;rdquo; section in the Linked Releases And Projects Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Project name&lt;/li&gt;
&lt;li&gt;Project version&lt;/li&gt;
&lt;li&gt;Project Relation (info hover)&lt;/li&gt;
&lt;li&gt;Enable SVM (checkbox)&lt;/li&gt;
&lt;li&gt;Delete icon&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Projects&amp;rdquo; button beneath to open the search popup.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Add Projects&amp;rdquo; button opens the search popup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="linked-releases-section"&gt;Linked Releases Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Linked Releases&amp;rdquo; section in the Linked Releases And Projects Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Linked Releases&amp;rdquo; section in the Linked Releases And Projects Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Release name&lt;/li&gt;
&lt;li&gt;Release version&lt;/li&gt;
&lt;li&gt;Release relation (info hover)&lt;/li&gt;
&lt;li&gt;Project Mainline State (info hover)&lt;/li&gt;
&lt;li&gt;Comments&lt;/li&gt;
&lt;li&gt;Delete icon&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Releases&amp;rdquo; button beneath to open the search popup.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Add Releases&amp;rdquo; button opens the search popup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-packages-tab"&gt;Linked Packages Tab&lt;/h3&gt;
&lt;h4 id="linked-packages-section"&gt;Linked Packages Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Linked Packages&amp;rdquo; section in the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Linked Packages&amp;rdquo; section in the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Package Name&lt;/li&gt;
&lt;li&gt;Package Version&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;li&gt;Package Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Packages&amp;rdquo; button on top to open the search popup.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Add Packages&amp;rdquo; button opens the search popup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="create-project-button"&gt;Create Project Button&lt;/h3&gt;
&lt;h4 id="project-creation"&gt;Project Creation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-CRT-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that upon hitting the &amp;ldquo;Create Project&amp;rdquo; button, the project is saved, and the user is redirected to the project edit page for the newly created project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields and any additional information.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Create Project&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The project is saved, and the user is redirected to the project edit page for the newly created project.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>SW360 Rest API</title><link>https://eclipse.dev/sw360/docs/development/restapi/dev-rest-api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/restapi/dev-rest-api/</guid><description>&lt;p&gt;The sw360 REST API provides access to sw360 resources for external clients. It consists currently of three Maven modules aggregated in one parent module &lt;code&gt;rest&lt;/code&gt; in the sw360 distribution.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For access setup and request examples, see &lt;a href="https://eclipse.dev/sw360/docs/development/restapi/access/"&gt;API Access&lt;/a&gt;.
Legacy workflows are kept in &lt;a href="https://eclipse.dev/sw360/docs/development/restapi/legacy/"&gt;Legacy REST API Guides&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="resource-server-authentication-and-authorization-flow"&gt;Resource Server Authentication and Authorization Flow&lt;/h2&gt;
&lt;p&gt;This section describes how &lt;code&gt;resource-server&lt;/code&gt; identifies the principal and
evaluates effective permissions.&lt;/p&gt;
&lt;h3 id="security-pipeline-high-level"&gt;Security Pipeline (High-Level)&lt;/h3&gt;
&lt;pre class="mermaid"&gt;flowchart TD
 A[Incoming HTTP request] --&amp;gt; B{Authorization header}
 B --&amp;gt;|Basic ...| C[Basic Authentication Provider]
 B --&amp;gt;|Token ...| D[API Token Filter &amp;#43; Provider]
 B --&amp;gt;|Bearer ...| E[JWT Authentication Provider &amp;#43; JWT Converter]
 C --&amp;gt; F[Authenticated principal &amp;#43; authorities]
 D --&amp;gt; F
 E --&amp;gt; F
 F --&amp;gt; G[Resolve SW360 user in RestControllerHelper]
 G --&amp;gt; H[Endpoint &amp;#43; method authorization checks]&lt;/pre&gt;
&lt;h3 id="how-principal-identity-is-resolved"&gt;How principal identity is resolved&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;RestControllerHelper.getSw360UserFromAuthentication()&lt;/code&gt; resolves the SW360 user
from authentication context using this order:&lt;/p&gt;</description></item><item><title>Testing Policy</title><link>https://eclipse.dev/sw360/docs/development/dev-testing-policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-testing-policy/</guid><description>&lt;h1 id="sw360-testing-policy"&gt;SW360 Testing Policy&lt;/h1&gt;
&lt;p&gt;To ensure the reliability, maintainability, and security of the SW360 portal,
this policy mandates automated testing for all code contributions.&lt;/p&gt;
&lt;h2 id="policy-requirements"&gt;Policy Requirements&lt;/h2&gt;
&lt;h3 id="1-new-functionality"&gt;1. New Functionality&lt;/h3&gt;
&lt;p&gt;Every new feature or major enhancement MUST be accompanied by automated tests.
This includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unit Tests&lt;/strong&gt;: For individual components and business logic.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integration Tests&lt;/strong&gt;: For service interactions and data handling layers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Tests&lt;/strong&gt;: For new REST endpoints.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-bug-fixes"&gt;2. Bug Fixes&lt;/h3&gt;
&lt;p&gt;All bug fixes MUST include one or more regression tests that demonstrate the bug
being fixed and prevent it from recurring.&lt;/p&gt;</description></item><item><title>User Management Roles</title><link>https://eclipse.dev/sw360/docs/administrationguide/user-management-roles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/user-management-roles/</guid><description>&lt;p&gt;Every user can create records and edit their own records. However, to change
records owned by others, approval is required. This is handled through a
&lt;strong&gt;Moderation Request&lt;/strong&gt; — a set of proposed changes that are not applied
immediately, but are routed to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The creator of the record&lt;/li&gt;
&lt;li&gt;The moderators defined for that record&lt;/li&gt;
&lt;li&gt;The Clearing Admin(s) of the same department&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The proposed changes can then be approved or rejected by any of the above.&lt;/p&gt;</description></item><item><title>Generate a Keycloak Token for REST API</title><link>https://eclipse.dev/sw360/docs/userguide/keycloak-token/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/keycloak-token/</guid><description>&lt;p&gt;This guide explains how to generate a Keycloak access token for SW360 REST API
usage with the &lt;code&gt;client_credentials&lt;/code&gt; flow.&lt;/p&gt;
&lt;h2 id="before-you-generate-a-token-create-a-client"&gt;Before you generate a token: create a client&lt;/h2&gt;
&lt;p&gt;For SW360 deployments, first create a dedicated Keycloak client and obtain
its &lt;code&gt;client_id&lt;/code&gt; and &lt;code&gt;client_secret&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Follow the existing deployment guide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/deploy-keycloak-authentication/#user-client-management"&gt;Keycloak Authentication - User Client Management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After that step, come back here with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keycloak base URL (for example &lt;code&gt;https://&amp;lt;keycloak-host&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Realm name (for example &lt;code&gt;sw360&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;client_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;client_secret&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="token-endpoint-and-discovery"&gt;Token endpoint and discovery&lt;/h2&gt;
&lt;p&gt;You can discover the token endpoint from OIDC metadata:&lt;/p&gt;</description></item><item><title>Edit Project</title><link>https://eclipse.dev/sw360/docs/development/completiontests/projects-edit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/projects-edit/</guid><description>&lt;h2 id="sw360-edit-project-page-test-cases"&gt;SW360 &amp;ldquo;Edit Project&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="general-information-section"&gt;General Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;General Information&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;General Information&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Project Name (required)&lt;/li&gt;
&lt;li&gt;Version&lt;/li&gt;
&lt;li&gt;Project visibility (required) (one of Private, Me and Moderators, Group and Moderators, Everyone (default))&lt;/li&gt;
&lt;li&gt;Created By (no edit)&lt;/li&gt;
&lt;li&gt;Project Type (required) (one of Customer Project, Internal Project, Product (default), Service, Inner Source, Cloud Backend)&lt;/li&gt;
&lt;li&gt;Tag&lt;/li&gt;
&lt;li&gt;Description (textbox)&lt;/li&gt;
&lt;li&gt;Domain (one of Application Software, Documentation, Embedded Software, Hardware, Test and Diagnostics)&lt;/li&gt;
&lt;li&gt;Vendor (click for popup) with a clear button beneath&lt;/li&gt;
&lt;li&gt;Modified On (no edit)&lt;/li&gt;
&lt;li&gt;Modified By (no edit)&lt;/li&gt;
&lt;li&gt;3 vulnerability checkboxes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="external-urls-section"&gt;External URLs Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;External URLs&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;External URLs&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to External URLs&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the new row:
&lt;ul&gt;
&lt;li&gt;External URL key on the left&lt;/li&gt;
&lt;li&gt;Type to get default values&lt;/li&gt;
&lt;li&gt;External URL value on the right&lt;/li&gt;
&lt;li&gt;Row delete button on the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="roles-section"&gt;Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Roles&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Group (required) (default user department) with a clear button beneath&lt;/li&gt;
&lt;li&gt;Project Manager (single value)&lt;/li&gt;
&lt;li&gt;Project Owner (single value)&lt;/li&gt;
&lt;li&gt;Owner Accounting Unit&lt;/li&gt;
&lt;li&gt;Owner Billing Group&lt;/li&gt;
&lt;li&gt;Owner Country&lt;/li&gt;
&lt;li&gt;Lead Architect (single value)&lt;/li&gt;
&lt;li&gt;Moderators (multi value)&lt;/li&gt;
&lt;li&gt;Contributors (multi value)&lt;/li&gt;
&lt;li&gt;Security Responsibles (multi value)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-roles-section"&gt;Additional Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Roles&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Roles&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional roles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="external-ids-section"&gt;External Ids Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;External Ids&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;External Ids&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to External Ids&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the new row:
&lt;ul&gt;
&lt;li&gt;External Id key on the left&lt;/li&gt;
&lt;li&gt;Type to get default values&lt;/li&gt;
&lt;li&gt;External Id value on the right&lt;/li&gt;
&lt;li&gt;Row delete button on the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-data-section"&gt;Additional Data Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Data&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="administration-tab"&gt;Administration Tab&lt;/h3&gt;
&lt;h4 id="clearing-section"&gt;Clearing Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Clearing&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Clearing&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Project Clearing State (one of Open, In Progress, Closed)&lt;/li&gt;
&lt;li&gt;Clearing Team dropdown (values from backend)&lt;/li&gt;
&lt;li&gt;Deadline for pre-evaluation (date)&lt;/li&gt;
&lt;li&gt;Clearing summary (text area)&lt;/li&gt;
&lt;li&gt;Special risk Open Source Software (text area)&lt;/li&gt;
&lt;li&gt;General risk 3rd party software (text area)&lt;/li&gt;
&lt;li&gt;Special risks 3rd party software (text area)&lt;/li&gt;
&lt;li&gt;Sales and delivery channels (text area)&lt;/li&gt;
&lt;li&gt;Remarks additional requirements (text area)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="lifecycle-section"&gt;Lifecycle Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Lifecycle&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Lifecycle&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Project State (required) (one of Active, Phaseout, Unknown)&lt;/li&gt;
&lt;li&gt;System test begin (date)&lt;/li&gt;
&lt;li&gt;System test end (date)&lt;/li&gt;
&lt;li&gt;Delivery start date (date)&lt;/li&gt;
&lt;li&gt;Phase-out date (date)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="license-info-header-section"&gt;License Info Header Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;License Info Header&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;License Info Header&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a text area with a default license info header and a bottom on the top right of the area to reset to default text.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The text area with the default license info header and the reset button are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-releases-and-projects-tab"&gt;Linked Releases And Projects Tab&lt;/h3&gt;
&lt;h4 id="linked-projects-section"&gt;Linked Projects Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Linked Projects&amp;rdquo; section in the Linked Releases And Projects Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Linked Projects&amp;rdquo; section in the Linked Releases And Projects Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Project name&lt;/li&gt;
&lt;li&gt;Project version&lt;/li&gt;
&lt;li&gt;Project Relation (info hover)&lt;/li&gt;
&lt;li&gt;Enable SVM (checkbox)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Projects&amp;rdquo; button beneath to open the search popup.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Add Projects&amp;rdquo; button opens the search popup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="linked-releases-section"&gt;Linked Releases Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Linked Releases&amp;rdquo; section in the Linked Releases And Projects Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Linked Releases&amp;rdquo; section in the Linked Releases And Projects Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Release name&lt;/li&gt;
&lt;li&gt;Release version&lt;/li&gt;
&lt;li&gt;Release relation (info hover)&lt;/li&gt;
&lt;li&gt;Project Mainline State (info hover)&lt;/li&gt;
&lt;li&gt;Comments&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Releases&amp;rdquo; button beneath to open the search popup.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Add Releases&amp;rdquo; button opens the search popup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-packages-tab"&gt;Linked Packages Tab&lt;/h3&gt;
&lt;h4 id="linked-packages-section"&gt;Linked Packages Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Linked Packages&amp;rdquo; section in the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Linked Packages&amp;rdquo; section in the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Package Name&lt;/li&gt;
&lt;li&gt;Package Version&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;li&gt;Package Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Packages&amp;rdquo; button on top to open the search popup.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Add Packages&amp;rdquo; button opens the search popup.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="attachments-tab"&gt;Attachments Tab&lt;/h3&gt;
&lt;h4 id="attachments-table"&gt;Attachments Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Attachments&amp;rdquo; table in the Attachments Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Attachments&amp;rdquo; table in the Attachments Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Filename&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;Comment (entered by uploader)&lt;/li&gt;
&lt;li&gt;Group (department of uploader)&lt;/li&gt;
&lt;li&gt;Name (name of uploader)&lt;/li&gt;
&lt;li&gt;Date (date of upload)&lt;/li&gt;
&lt;li&gt;Status (status set by approver)&lt;/li&gt;
&lt;li&gt;Comment (entered by approver)&lt;/li&gt;
&lt;li&gt;Group (department of approver)&lt;/li&gt;
&lt;li&gt;Name (name of approver)&lt;/li&gt;
&lt;li&gt;Date (date of approve)&lt;/li&gt;
&lt;li&gt;Delete icon (remove attachment)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Attachment&amp;rdquo; button on the bottom to add a new attachment.&lt;/li&gt;
&lt;li&gt;Make sure the changed values about comment, status, etc. are saved.&lt;/li&gt;
&lt;li&gt;Verify if the Edit views shows the saved values for the comment, status, etc.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Add Attachment&amp;rdquo; button allows adding a new attachment.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="delete-attachment"&gt;Delete Attachment&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Delete Attachment&amp;rdquo; functionality in the Attachments Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Attachments&amp;rdquo; table in the Attachments Tab.&lt;/li&gt;
&lt;li&gt;Click on the delete icon for an attachment.&lt;/li&gt;
&lt;li&gt;If the attachment was &amp;ldquo;Accepted&amp;rdquo;, popup with error &amp;ldquo;An attachment cannot be deleted while it is approved. You have to reject the approval first.&amp;rdquo; should appear.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Rejected&amp;rdquo; or &amp;ldquo;Unchecked&amp;rdquo; attachments should be deleted with a popup for confirmation.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The delete functionality shows error for &amp;ldquo;Accepted&amp;rdquo; attachments, confirmation popup for other attachments.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="obligations-tab"&gt;Obligations Tab&lt;/h3&gt;
&lt;h4 id="obligations-view-or-release-view-switch"&gt;Obligations View or Release View Switch&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-015&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Obligations View or Release View&amp;rdquo; switch in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Obligations View or Release View&amp;rdquo; switch in the Obligations Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The switch is present and functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="obligations-tabs"&gt;Obligations Tabs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-016&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the 4 tabs: License Obligation, Component Obligation, Project Obligation, Organisation Obligation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Obligations Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following tabs:
&lt;ul&gt;
&lt;li&gt;License Obligation&lt;/li&gt;
&lt;li&gt;Component Obligation&lt;/li&gt;
&lt;li&gt;Project Obligation&lt;/li&gt;
&lt;li&gt;Organisation Obligation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified tabs are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="license-obligation-tab"&gt;License Obligation Tab&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-017&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;License Obligation&amp;rdquo; tab in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;License Obligation&amp;rdquo; tab in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;Click on the leftmost expand button to expand everything.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;License Obligation (title)&lt;/li&gt;
&lt;li&gt;Licenses (show one, expand to show all)&lt;/li&gt;
&lt;li&gt;Releases (show one, expand to show all)&lt;/li&gt;
&lt;li&gt;Status (dropdown)&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;Id&lt;/li&gt;
&lt;li&gt;Comment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the button on the top right to &amp;ldquo;Add Obligations from License Database&amp;rdquo; and verify that a popup opens to get obligations not in the project and select to add.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present, and the button to add obligations from the license database functions as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="component-obligation-tab"&gt;Component Obligation Tab&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-018&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Component Obligation&amp;rdquo; tab in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Component Obligation&amp;rdquo; tab in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;Click on the leftmost expand button to expand to show the obligation text.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Component Obligation (title)&lt;/li&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;Id&lt;/li&gt;
&lt;li&gt;Comment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="project-obligation-tab"&gt;Project Obligation Tab&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-019&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Project Obligation&amp;rdquo; tab in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Project Obligation&amp;rdquo; tab in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the same fields as in the &amp;ldquo;Component Obligation&amp;rdquo; tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="organisation-obligation-tab"&gt;Organisation Obligation Tab&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-020&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Organisation Obligation&amp;rdquo; tab in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Organisation Obligation&amp;rdquo; tab in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the same fields as in the &amp;ldquo;Component Obligation&amp;rdquo; tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="release-view"&gt;Release View&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-EDIT-021&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Release View&amp;rdquo; in the Obligations Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Project&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Obligations View or Release View&amp;rdquo; switch in the Obligations Tab and switch to &amp;ldquo;Release View.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Verify that all releases are shown with the total license count in brackets.&lt;/li&gt;
&lt;li&gt;Expand a release to get Global or Other licenses.&lt;/li&gt;
&lt;li&gt;Further expand to get a list of licenses.&lt;/li&gt;
&lt;li&gt;Further expand a license to get the following fields:
&lt;ul&gt;
&lt;li&gt;Obligation (title)&lt;/li&gt;
&lt;li&gt;Obligation text&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;Id&lt;/li&gt;
&lt;li&gt;Status (readonly)&lt;/li&gt;
&lt;li&gt;Comment (readonly)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Release View&amp;rdquo; shows all releases with the specified details and fields.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Enumerations</title><link>https://eclipse.dev/sw360/docs/administrationguide/user-data-model-enumerations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/user-data-model-enumerations/</guid><description>&lt;p&gt;SW360 thrift API is comprised of the following methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;attachments&lt;/li&gt;
&lt;li&gt;codescoop&lt;/li&gt;
&lt;li&gt;components&lt;/li&gt;
&lt;li&gt;cvesearch&lt;/li&gt;
&lt;li&gt;fossology&lt;/li&gt;
&lt;li&gt;importstatus&lt;/li&gt;
&lt;li&gt;licenseinfo&lt;/li&gt;
&lt;li&gt;licenses&lt;/li&gt;
&lt;li&gt;moderation&lt;/li&gt;
&lt;li&gt;projectimport&lt;/li&gt;
&lt;li&gt;projects&lt;/li&gt;
&lt;li&gt;schedule&lt;/li&gt;
&lt;li&gt;search&lt;/li&gt;
&lt;li&gt;sw360&lt;/li&gt;
&lt;li&gt;users&lt;/li&gt;
&lt;li&gt;vendors&lt;/li&gt;
&lt;li&gt;vulnerabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reference: &lt;a href="https://github.com/eclipse-sw360/sw360/tree/main/libraries/datahandler/src/main/thrift"&gt;https://github.com/eclipse-sw360/sw360/tree/main/libraries/datahandler/src/main/thrift&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="attachments"&gt;Attachments&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/eclipse-sw360/sw360/blob/main/libraries/datahandler/src/main/thrift/attachments.thrift"&gt;https://github.com/eclipse-sw360/sw360/blob/main/libraries/datahandler/src/main/thrift/attachments.thrift&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="attachmenttype"&gt;AttachmentType&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Value&lt;/th&gt;
 &lt;th&gt;Description.&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;DOCUMENT&lt;/td&gt;
 &lt;td&gt;justa document&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SOURCE&lt;/td&gt;
 &lt;td&gt;original course code&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DESIGN&lt;/td&gt;
 &lt;td&gt;design document&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;REQUIREMENT&lt;/td&gt;
 &lt;td&gt;requirements document&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CLEARING_REPORT&lt;/td&gt;
 &lt;td&gt;OSS licensing reporting&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;COMPONENT_LICENSE_INFO_XML&lt;/td&gt;
 &lt;td&gt;XML document with licenseing information - e.g. SPDX&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;COMPONENT_LICENSE_INFO_COMBINED&lt;/td&gt;
 &lt;td&gt;XML document with licensing information covering multiple componnts at once - e.g. SPDX&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SCAN_RESULT_REPORT&lt;/td&gt;
 &lt;td&gt;Output what a scanner for licenses has found&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SCAN_RESULT_REPORT_XML&lt;/td&gt;
 &lt;td&gt;Output what a scanner for licenses has found this time in XML&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SOURCE_SELF&lt;/td&gt;
 &lt;td&gt;Self assembled source code distribution&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;BINARY&lt;/td&gt;
 &lt;td&gt;Binary of component from vendor&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;BINARY_SELF&lt;/td&gt;
 &lt;td&gt;Self built binary&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DECISION_REPORT&lt;/td&gt;
 &lt;td&gt;documenting importing decisions for using this item&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LEGAL_EVALUATION&lt;/td&gt;
 &lt;td&gt;Some legal evaluation created for this item&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LICENSE_AGREEMENT&lt;/td&gt;
 &lt;td&gt;A ruling license agreement for this item, note that this could be for commercial software for example&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SCREENSHOT&lt;/td&gt;
 &lt;td&gt;Screenshot, usually screenshot of the Website with licensing information&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OTHER&lt;/td&gt;
 &lt;td&gt;anything that dos not match to the given above&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="checkstatus"&gt;CheckStatus&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Value&lt;/th&gt;
 &lt;th&gt;Description.&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;NOTCHECKED&lt;/td&gt;
 &lt;td&gt;Default value after upload.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ACCEPTED&lt;/td&gt;
 &lt;td&gt;Reviewed and confirmed attachment.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;REJECTED&lt;/td&gt;
 &lt;td&gt;Document or attachment cannot be used.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="codescoop-thrift-file"&gt;CodeScoop Thrift File&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/eclipse/sw360/blob/master/libraries/lib-datahandler/src/main/thrift/codescoop.thrift"&gt;https://github.com/eclipse/sw360/blob/master/libraries/lib-datahandler/src/main/thrift/codescoop.thrift&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Secure Design</title><link>https://eclipse.dev/sw360/docs/development/dev-secure-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-secure-design/</guid><description>&lt;h1 id="sw360-secure-design-principles"&gt;SW360 Secure Design Principles&lt;/h1&gt;
&lt;p&gt;This document outlines how the SW360 project incorporates fundamental security
design principles into its architecture and development processes.&lt;/p&gt;
&lt;h2 id="1-fail-safe-defaults"&gt;1. Fail-safe Defaults&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;In-depth Authorization&lt;/strong&gt;: By default, any new API endpoint or UI action
requires authentication. Access is denied unless explicitly permitted by the
user&amp;rsquo;s roles.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Secure Configuration&lt;/strong&gt;: The system is designed to run in a secure state
out-of-the-box. Environment variables are used for sensitive configurations,
ensuring that secrets are never hardcoded in the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-complete-mediation"&gt;2. Complete Mediation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Centralized Authentication&lt;/strong&gt;: Every access request is mediated through the
core &lt;strong&gt;Authorization Server&lt;/strong&gt; (OIDC/OAuth2). No resource can be accessed
without a valid, verified token. Integration with &lt;strong&gt;Keycloak&lt;/strong&gt; is supported
for enhanced IAM features.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;REST Interceptors&lt;/strong&gt;: Spring Security and customized filters serve as
mediators for all REST traffic, ensuring that every request is checked
against the user&amp;rsquo;s authority before being processed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-least-privilege"&gt;3. Least Privilege&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Role-Based Access Control (RBAC)&lt;/strong&gt;: SW360 uses granular roles (e.g., USER,
ADMIN, MAINTAINER). Users are granted only the minimum permissions necessary
for their tasks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Record-Level Permissions&lt;/strong&gt;: Visibility and edit rights are enforced at the
data handler level, ensuring that users can only interact with projects and
components they have specific rights to view.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-defense-in-depth"&gt;4. Defense in Depth&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-layer Validation&lt;/strong&gt;: Input validation is performed at both the frontend
(Next.js) and the backend (Spring Boot/Data Handler) to prevent malformed or
malicious data from reaching the database.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network Security&lt;/strong&gt;: The architecture separation of frontend, backend, and
database provides multiple layers where security controls can be applied
(e.g., CSP on the frontend, TLS between services).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="5-economy-of-mechanism-keep-it-simple"&gt;5. Economy of Mechanism (Keep it Simple)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Standardized Frameworks&lt;/strong&gt;: By utilizing established frameworks like Spring
Security and Next.js, the project avoids the complexities and vulnerabilities
associated with &amp;ldquo;rolling your own&amp;rdquo; security solutions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clean Architecture&lt;/strong&gt;: The modular separation of concerns ensures that
security logic is isolated and easy to audit.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="6-open-design"&gt;6. Open Design&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open Standards&lt;/strong&gt;: The project relies on open, widely-scrutinized standards
such as OIDC and OAuth2 for security, rather than proprietary or &amp;ldquo;hidden&amp;rdquo;
mechanisms.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Public Auditability&lt;/strong&gt;: As an open-source project, the security policy,
source code, and design are public, allowing for continuous community review
and transparency.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="7-psychological-acceptability"&gt;7. Psychological Acceptability&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SSO Integration&lt;/strong&gt;: By using Keycloak for Single Sign-On, we minimize
&amp;ldquo;password fatigue&amp;rdquo; for users while maintaining robust security controls.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Intuitive UI&lt;/strong&gt;: Security-related states (e.g., read-only vs. edit mode) are
clearly reflected in the UI, making it easy for users to understand their
current permission level.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Assurance Case</title><link>https://eclipse.dev/sw360/docs/development/dev-assurance-case/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-assurance-case/</guid><description>&lt;h1 id="sw360-security-assurance-case"&gt;SW360 Security Assurance Case&lt;/h1&gt;
&lt;p&gt;This document provides a formal justification for why the SW360 project&amp;rsquo;s
security requirements are met. It serves as a comprehensive &amp;ldquo;argument for
security&amp;rdquo; based on design, tools, and processes.&lt;/p&gt;
&lt;h2 id="1-threat-model--trust-boundaries"&gt;1. Threat Model &amp;amp; Trust Boundaries&lt;/h2&gt;
&lt;h3 id="assets-to-protect"&gt;Assets to Protect&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Intellectual Property&lt;/strong&gt;: Component data, license information, and project
metadata.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Integrity&lt;/strong&gt;: The correctness of moderation requests and project
status, ensured through &lt;strong&gt;audit trails and changelogs&lt;/strong&gt; for all records.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Availability&lt;/strong&gt;: Continuous access for organizational software compliance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="trust-boundaries"&gt;Trust Boundaries&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;User/System Boundary&lt;/strong&gt;: The point where external users (or automated
clients) interact with the SW360 Frontend or REST layer (Authorization and
Resource Servers).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frontend/Backend Boundary&lt;/strong&gt;: The interaction between the Next.js
application and the REST layer services.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Internal service Boundary&lt;/strong&gt;: Communication between the REST layer and the
business logic (Thrift).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data layer Boundary&lt;/strong&gt;: Interaction between the backend services and the
CouchDB database.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="2-secure-design-application"&gt;2. Secure Design Application&lt;/h2&gt;
&lt;p&gt;As detailed in &lt;a href="https://eclipse.dev/sw360/docs/development/dev-secure-design/"&gt;Secure Design&lt;/a&gt;, the project strictly
follows:&lt;/p&gt;</description></item><item><title>CVE-Search Scheduling</title><link>https://eclipse.dev/sw360/docs/administrationguide/user-scheduling-cve-search-by-admins/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/user-scheduling-cve-search-by-admins/</guid><description>&lt;p&gt;SW360 gets vulnerability information from an external provider of Common Vulnerability Enumeration (CVE) data. By default SW360 can connect to cve-search [https://www.circl.lu/services/cve-search/] which is either available as an online service [http://cve.circl.lu] or can be installed locally. For security and privacy reasons it is strongly advised to install a local cve-search service.&lt;/p&gt;
&lt;h2 id="synchronization-between-sw360-and-cve-provider"&gt;Synchronization between SW360 and CVE Provider&lt;/h2&gt;
&lt;h3 id="automatic-scheduling"&gt;Automatic Scheduling&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;CveSearch-updates&lt;/code&gt; can either be scheduled automatically when launching the &lt;code&gt;schedule-service&lt;/code&gt; (e.g. when re/starting SW360) or it can be scheduled or unscheduled manually by an &lt;code&gt;SW360 admin&lt;/code&gt;.
It is automatically scheduled with the start of the scheduling service, if in the &lt;code&gt;/resources/sw360.properties&lt;/code&gt; file of the &lt;code&gt;schedule-service&lt;/code&gt; in the backend, &lt;code&gt;cvesearchService&lt;/code&gt; is mentioned in the &lt;code&gt;autostart&lt;/code&gt;-property:&lt;/p&gt;</description></item><item><title>Project Details</title><link>https://eclipse.dev/sw360/docs/development/completiontests/projects-details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/projects-details/</guid><description>&lt;h2 id="sw360-project-details-page-test-cases"&gt;SW360 &amp;ldquo;Project Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-PROJ-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Edit Project&amp;rdquo;, &amp;ldquo;Link to Projects&amp;rdquo;, &amp;ldquo;Import SBOM&amp;rdquo;, and &amp;ldquo;Export SBOM&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="general-information-section"&gt;General Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-PROJ-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;General Information&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;General Information&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;ID of the project&lt;/li&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Version&lt;/li&gt;
&lt;li&gt;Visibility&lt;/li&gt;
&lt;li&gt;Created on&lt;/li&gt;
&lt;li&gt;Created by (mailto link)&lt;/li&gt;
&lt;li&gt;Modified on&lt;/li&gt;
&lt;li&gt;Modified by (mailto link)&lt;/li&gt;
&lt;li&gt;Project type&lt;/li&gt;
&lt;li&gt;Domain&lt;/li&gt;
&lt;li&gt;Tag&lt;/li&gt;
&lt;li&gt;External IDs (as UL, key in bold, value next to it)&lt;/li&gt;
&lt;li&gt;Additional data (same as External IDs)&lt;/li&gt;
&lt;li&gt;External URLs (same as External IDs display, but values are clickable URLs)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="roles-section"&gt;Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-PROJ-DTL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Group of project&lt;/li&gt;
&lt;li&gt;Project Responsible&lt;/li&gt;
&lt;li&gt;Project Owner&lt;/li&gt;
&lt;li&gt;Owner Accounting Unit&lt;/li&gt;
&lt;li&gt;Owner Billing Group&lt;/li&gt;
&lt;li&gt;Owner Country&lt;/li&gt;
&lt;li&gt;Lead Architect&lt;/li&gt;
&lt;li&gt;Moderators&lt;/li&gt;
&lt;li&gt;Contributors&lt;/li&gt;
&lt;li&gt;Security Responsibles&lt;/li&gt;
&lt;li&gt;Additional Roles&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verify that all users displayed are mailto links.&lt;/li&gt;
&lt;li&gt;Verify that Moderators, Contributors, and Security Responsibles are displayed as a comma-separated list.&lt;/li&gt;
&lt;li&gt;Verify that Additional Roles are displayed similar to External URLs.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="project-vendor-section"&gt;Project Vendor Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-PROJ-DTL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Project Vendor&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Project Vendor&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Vendor&amp;rsquo;s Full Name&lt;/li&gt;
&lt;li&gt;Short Name&lt;/li&gt;
&lt;li&gt;URL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="administration-tab"&gt;Administration Tab&lt;/h3&gt;
&lt;h4 id="clearing-section"&gt;Clearing Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Clearing&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Clearing&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Project clearing state&lt;/li&gt;
&lt;li&gt;Clearing details (New releases count, Under clearing count, Report available count, Approved count)&lt;/li&gt;
&lt;li&gt;Clearing Team&lt;/li&gt;
&lt;li&gt;Deadline for pre-evaluation&lt;/li&gt;
&lt;li&gt;Clearing summary&lt;/li&gt;
&lt;li&gt;Special risk Open Source Software&lt;/li&gt;
&lt;li&gt;General risks 3rd party software&lt;/li&gt;
&lt;li&gt;Special risks 3rd party software&lt;/li&gt;
&lt;li&gt;Sales and delivery channels&lt;/li&gt;
&lt;li&gt;Remarks additional requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verify that the values for Clearing summary, Special risk Open Source Software, General risks 3rd party software, Special risks 3rd party software, Sales and delivery channels, Remarks additional requirements are in a readonly text area.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="lifecycle-section"&gt;Lifecycle Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Lifecycle&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Lifecycle&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Project state&lt;/li&gt;
&lt;li&gt;System test begin&lt;/li&gt;
&lt;li&gt;System test end&lt;/li&gt;
&lt;li&gt;Delivery start&lt;/li&gt;
&lt;li&gt;Phase-out since&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="license-info-header-section"&gt;License Info Header Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;License Info Header&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;License Info Header&amp;rdquo; section in the Administration Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the license info header of the project in a big text area.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The license info header is displayed in a big text area.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="obligation-tab"&gt;Obligation Tab&lt;/h3&gt;
&lt;h4 id="tab-name-and-count"&gt;Tab Name and Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the tab name itself shows the count of &amp;ldquo;Status changed obligations / Total obligations.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Obligation Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The tab name shows the count of &amp;ldquo;Status changed obligations / Total obligations.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="obligation-information"&gt;Obligation Information&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of obligation information as per test cases EDIT-014, EDIT-015, EDIT-016, EDIT-017, EDIT-018, and EDIT-019.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Obligation Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The obligation information is displayed as per the specified test cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="create-project-clearing-report-dropdown"&gt;Create Project Clearing Report Dropdown&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Create Project Clearing Report&amp;rdquo; dropdown on top with &amp;ldquo;Project only&amp;rdquo; and &amp;ldquo;Project with sub project&amp;rdquo; options.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Obligation Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the &amp;ldquo;Create Project Clearing Report&amp;rdquo; dropdown.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The dropdown is present with the specified options.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="report-button"&gt;Report Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the report button redirects to the CLI Attachment usage view with a &amp;ldquo;Download&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Obligation Tab.&lt;/li&gt;
&lt;li&gt;Click on the report button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page redirects to the CLI Attachment usage view with a &amp;ldquo;Download&amp;rdquo; button.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ecc-tab"&gt;ECC Tab&lt;/h3&gt;
&lt;h4 id="ecc-information-table"&gt;ECC Information Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of ECC information for all releases (including sub projects) in a table with the specified columns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the ECC Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;li&gt;Release name (clickable link to open release)&lt;/li&gt;
&lt;li&gt;Release version&lt;/li&gt;
&lt;li&gt;Creator Group&lt;/li&gt;
&lt;li&gt;ECC Assessor&lt;/li&gt;
&lt;li&gt;ECC Assessor Group&lt;/li&gt;
&lt;li&gt;ECC Assessment Date&lt;/li&gt;
&lt;li&gt;ECCN&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-tracking-status-tab"&gt;Vulnerability Tracking Status Tab&lt;/h3&gt;
&lt;h4 id="vulnerability-state-information-section"&gt;Vulnerability State Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Vulnerability State Information&amp;rdquo; section in the Vulnerability Tracking Status Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Tracking Status Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Security Vulnerability Monitoring&amp;rdquo; for the project as Enabled / Disabled&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Do not create monitoring list, but use list from external id&amp;rdquo; for the project as Enabled / Disabled&lt;/li&gt;
&lt;li&gt;&amp;ldquo;com.siemens.svm.monitoringlist.id&amp;rdquo; for the project&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tracking-status-table"&gt;Tracking Status Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the table below with the tracking status of releases displaying the specified columns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Tracking Status Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Name (clickable link to open the release)&lt;/li&gt;
&lt;li&gt;Project Origin (which project release is linked with)&lt;/li&gt;
&lt;li&gt;SVM Tracking Status (tracked or not)&lt;/li&gt;
&lt;li&gt;Short Status&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="attachments-tab"&gt;Attachments Tab&lt;/h3&gt;
&lt;h4 id="download-attachment-bundle-button"&gt;Download Attachment Bundle Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-015&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Download Attachment Bundle&amp;rdquo; button on top, which opens Attachment Usage for SRC.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Attachments Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Download Attachment Bundle&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Attachment Usage for SRC is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="attachments-table"&gt;Attachments Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-016&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the following column information in the Attachments Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Attachments Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Download button to download all attachments as a zip. In rows, it will act as an expand button, showing
SHA1, Uploaded On, Uploaded Comment, Checked On, and Checked Comment.&lt;/li&gt;
&lt;li&gt;File name (uploaded file name)&lt;/li&gt;
&lt;li&gt;Size (file size)&lt;/li&gt;
&lt;li&gt;Type (attachment type)&lt;/li&gt;
&lt;li&gt;Group (uploader&amp;rsquo;s Department)&lt;/li&gt;
&lt;li&gt;Uploaded by (uploader)&lt;/li&gt;
&lt;li&gt;Group (approver Department, in green if approved, red or black)&lt;/li&gt;
&lt;li&gt;Checked by (approver, green, red, or black)&lt;/li&gt;
&lt;li&gt;Usages (attachment usage count)&lt;/li&gt;
&lt;li&gt;Actions (download button for attachment)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present. The data is correct from the database.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerabilities-tab"&gt;Vulnerabilities Tab&lt;/h3&gt;
&lt;h4 id="dropdown-on-top"&gt;Dropdown on Top&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-017&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the dropdown on top with options to show the latest 200/500/1000/All vulnerabilities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerabilities Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The dropdown with the specified options is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="tabs"&gt;Tabs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-018&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of tabs: Summary, Current project, Child projects, etc. If no child project, only 1 tab: Current project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerabilities Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified tabs are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="summary-tab-1"&gt;Summary Tab&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-019&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Summary&amp;rdquo; tab in the Vulnerabilities Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Summary&amp;rdquo; tab in the Vulnerabilities Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Total vulnerabilities (current + child projects)&lt;/li&gt;
&lt;li&gt;Vulnerabilities table with columns: Project name, Release, External ID (link to vulnerability), Priority (hover info with value), Matched by, Title, Relevance for project (hover info with value), Actions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="project-tab"&gt;Project Tab&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-020&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Project&amp;rdquo; tab in the Vulnerabilities Tab (only tab if no sub project).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Project&amp;rdquo; tab in the Vulnerabilities Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Total vulnerabilities (current)&lt;/li&gt;
&lt;li&gt;Vulnerability state information: Security Vulnerabilities Display Enabled/Disabled&lt;/li&gt;
&lt;li&gt;Vulnerabilities table with columns: Checkbox, Release, External ID (link to vulnerability), Priority (hover info with value), Matched by, Title, Relevance for project (hover info with value), Actions&lt;/li&gt;
&lt;li&gt;Change rating and action of selected vulnerabilities with &amp;ldquo;Change&amp;rdquo; button, open popup with Selected vulnerabilities count, Rating, Action, and comment, and Change Rating button to submit&lt;/li&gt;
&lt;li&gt;Vulnerability Matching statistic with Matched By histogram&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changelog-tab"&gt;Changelog Tab&lt;/h3&gt;
&lt;h4 id="toggle-on-top"&gt;Toggle on Top&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-021&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Change Log&amp;rdquo; and &amp;ldquo;Changes&amp;rdquo; toggle on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Changelog Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The toggle is present with the specified options.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="changelog-table"&gt;Changelog Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-022&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the table with the specified columns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Changelog Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Change Log Id&lt;/li&gt;
&lt;li&gt;Change Type&lt;/li&gt;
&lt;li&gt;User&lt;/li&gt;
&lt;li&gt;Actions (button to open changelog)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="opening-changelog"&gt;Opening Changelog&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-023&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that opening a changelog changes the toggle on top to &amp;ldquo;Changes.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Changelog Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Actions&amp;rdquo; button to open a changelog.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The toggle on top changes to &amp;ldquo;Changes.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="basic-info-section"&gt;Basic Info Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-024&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Basic Info&amp;rdquo; section when a specific changelog is open.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Changelog Tab.&lt;/li&gt;
&lt;li&gt;Open a changelog.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the &amp;ldquo;Basic Info&amp;rdquo; section:
&lt;ul&gt;
&lt;li&gt;User&lt;/li&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Operation&lt;/li&gt;
&lt;li&gt;Document Id&lt;/li&gt;
&lt;li&gt;Document Type&lt;/li&gt;
&lt;li&gt;Reference Doc (list)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="changed-fields-table"&gt;Changed Fields Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-025&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of each changed field as a separate table with original value in left (in red), new value in right (in green), and diff highlighted between old and new value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Changelog Tab.&lt;/li&gt;
&lt;li&gt;Open a changelog.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table for each changed field with the specified details.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified details is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="returning-to-list"&gt;Returning to List&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-026&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Change Log&amp;rdquo; toggle on top returns to the list.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Changelog Tab.&lt;/li&gt;
&lt;li&gt;Open a changelog.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Change Log&amp;rdquo; toggle on top.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page returns to the list view.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="license-clearing-tab"&gt;License Clearing Tab&lt;/h3&gt;
&lt;h4 id="new-buttons-on-top"&gt;New Buttons on Top&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-027&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Tree View | List View&amp;rdquo; toggle, Export Spreadsheet dropdown, Generate License Info dropdown, Generate Source Code Bundle, and Create Clearing Request button on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Clearing Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified buttons and dropdowns are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="conditional-buttons"&gt;Conditional Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-028&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of conditional buttons based on user roles and project permissions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Clearing Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the &amp;ldquo;Add License Info to Release&amp;rdquo; button if the user is with Clearing Admin role or above.&lt;/li&gt;
&lt;li&gt;Verify the presence of the &amp;ldquo;Sync Linked Releases&amp;rdquo; button if the project has linked Packages and the user has write access to the current project.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified buttons are present based on the user&amp;rsquo;s role and project permissions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="linked-release-table"&gt;Linked Release Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-029&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the linked release table with the specified columns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Clearing Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Name (release name and version, clickable link to open release, expand button next to subproject and release with linked releases)&lt;/li&gt;
&lt;li&gt;Type (filterable)&lt;/li&gt;
&lt;li&gt;Relation (filterable)&lt;/li&gt;
&lt;li&gt;Main licenses (truncated, but expandable, i next to it to show license info, if multiple release &amp;ldquo;Failed to load source&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;Other licenses (same as Main licenses)&lt;/li&gt;
&lt;li&gt;State (filterable)&lt;/li&gt;
&lt;li&gt;Release Mainline State&lt;/li&gt;
&lt;li&gt;Project Mainline State&lt;/li&gt;
&lt;li&gt;Release Linked Date&lt;/li&gt;
&lt;li&gt;Comment&lt;/li&gt;
&lt;li&gt;Actions (edit icon to edit release or subproject)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="list-view-toggle"&gt;List View Toggle&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-030&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the behavior of the &amp;ldquo;List View&amp;rdquo; toggle.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Clearing Tab.&lt;/li&gt;
&lt;li&gt;Toggle to &amp;ldquo;List View&amp;rdquo; from &amp;ldquo;Tree View.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Verify that all releases expand from current or sub projects recursively, no more expand button, and a new column &amp;ldquo;Project Path&amp;rdquo; is added showing the current project or path to sub project from where the release is coming.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified behavior is observed when toggling to &amp;ldquo;List View.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-packages-tab"&gt;Linked Packages Tab&lt;/h3&gt;
&lt;h4 id="linked-packages-table"&gt;Linked Packages Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-DTL-031&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the linked packages table with the specified columns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Project Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Vendor (filterable)&lt;/li&gt;
&lt;li&gt;Package Name Version (filterable)&lt;/li&gt;
&lt;li&gt;Release Name version (filterable)&lt;/li&gt;
&lt;li&gt;Release clearing state (filterable)&lt;/li&gt;
&lt;li&gt;Licenses (filterable)&lt;/li&gt;
&lt;li&gt;Package Manager (filterable)&lt;/li&gt;
&lt;li&gt;Actions (with edit icon to edit package)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>SVM SSL/TLS Configuration</title><link>https://eclipse.dev/sw360/docs/administrationguide/vulnerabilitymanagement/svm-ssl-configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/administrationguide/vulnerabilitymanagement/svm-ssl-configuration/</guid><description>&lt;p&gt;SW360 communicates with the SVM service over HTTPS.
Two files can be configured in &lt;code&gt;/etc/sw360/sw360.properties&lt;/code&gt;:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;File&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;th&gt;Property&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Trust store (JKS)&lt;/td&gt;
 &lt;td&gt;Trust the SVM server&amp;rsquo;s CA certificate&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;svm.sw360.truststore.filename&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Client key store (PKCS12)&lt;/td&gt;
 &lt;td&gt;Authenticate SW360 to the SVM server (mutual TLS)&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;svm.sw360.certificate.filename&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Both files are resolved by SW360&amp;rsquo;s &lt;code&gt;CommonUtils.loadResource&lt;/code&gt;, which searches
&lt;code&gt;/etc/sw360/&amp;lt;filename&amp;gt;&lt;/code&gt; first and then falls back to the classpath.
Set only the &lt;strong&gt;filename&lt;/strong&gt; (e.g. &lt;code&gt;svm-truststore.jks&lt;/code&gt;), not an absolute path.&lt;/p&gt;
&lt;h2 id="trust-store-lookup-order"&gt;Trust-store lookup order&lt;/h2&gt;
&lt;p&gt;For SSL connections to the SVM API to be trusted, the CA certificate must be
present in the JVM default cacerts or provided via a custom JKS trust store.&lt;/p&gt;</description></item><item><title>SW360 Configurations</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-configuration-files/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-configuration-files/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;SW360 configurations are divided into two main categories: &lt;strong&gt;Non-changeable (File-based)&lt;/strong&gt; and &lt;strong&gt;Changeable (Database-backed)&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id="applicable-property-files"&gt;Applicable Property Files:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sw360.properties&lt;/code&gt; (Core configurations)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;couchdb.properties&lt;/code&gt; (CouchDB and Lucene connectivity)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;orgmapping.properties&lt;/code&gt; (Organization mapping features)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;couchdb-test.properties&lt;/code&gt; (CouchDB test purpose)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;authorization/application.yml&lt;/code&gt; (Authorization server settings)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rest/application.yml&lt;/code&gt; (Resource server settings)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="database-configurations"&gt;Database Configurations:&lt;/h4&gt;
&lt;p&gt;Most of the SW360-related properties (UI settings and backend features) are now moved to a database and are accessible via a REST endpoint. These are divided into two containers:&lt;/p&gt;</description></item><item><title>Project - Attachment Usages</title><link>https://eclipse.dev/sw360/docs/development/completiontests/projects-attachmentusage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/projects-attachmentusage/</guid><description>&lt;h2 id="sw360-attachment-usages-page-test-cases"&gt;SW360 &amp;ldquo;Attachment Usages&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="availability-as-a-tab"&gt;Availability as a Tab&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-AU-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Attachment Usages&amp;rdquo; tab is available under the Projects Details page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Projects Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Attachment Usages&amp;rdquo; tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Attachment Usages&amp;rdquo; tab is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="top-buttons-and-filters"&gt;Top Buttons and Filters&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-AU-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Save Usages&amp;rdquo; button, Linked Releases and Projects, Expand all, Collapse all, Release Filter (dropdown), and Search box on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Attachment Usages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following elements:
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Save Usages&amp;rdquo; button&lt;/li&gt;
&lt;li&gt;Linked Releases and Projects&lt;/li&gt;
&lt;li&gt;Expand all button&lt;/li&gt;
&lt;li&gt;Collapse all button&lt;/li&gt;
&lt;li&gt;Release Filter (dropdown) with options: With CLI Attachments, With Attachments, Without Source Attachments, Without Attachments&lt;/li&gt;
&lt;li&gt;Search box&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified elements are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="attachment-usages-table"&gt;Attachment Usages Table&lt;/h3&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-AU-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the Attachment Usages Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Attachment Usages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Attachment Usages Table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Relation&lt;/li&gt;
&lt;li&gt;Uploaded by&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;License Info (for CLX/SRR)&lt;/li&gt;
&lt;li&gt;Conclusions (ends with .rdf)&lt;/li&gt;
&lt;li&gt;Source Code Bundle&lt;/li&gt;
&lt;li&gt;Other&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="no-linked-releases-or-projects-message"&gt;No Linked Releases or Projects Message&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-AU-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the message &amp;ldquo;No Linked releases or projects&amp;rdquo; if no sub projects or linked releases are present.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Attachment Usages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Attachment Usages Table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The message &amp;ldquo;No Linked releases or projects&amp;rdquo; is displayed if no sub projects or linked releases are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="linked-release-details"&gt;Linked Release Details&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-AU-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of each Linked Release in the Project with an expand button, release name and version (max 60 char), CLI count (if 0: red, 1: green, else yellow), and relation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Attachment Usages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Attachment Usages Table.&lt;/li&gt;
&lt;li&gt;Click on the expand button of a Linked Release.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Linked Release details are displayed as specified.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="expanded-release-details"&gt;Expanded Release Details&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-AU-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the details displayed when a release is expanded.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Attachment Usages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Attachment Usages Table.&lt;/li&gt;
&lt;li&gt;Click on the expand button of a Linked Release.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following details:
&lt;ul&gt;
&lt;li&gt;Title: &amp;ldquo;Created on: date\nStatus: checked\nIf checked Checked By: email\nChecked On: date&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Attachment name (max 60 char)&lt;/li&gt;
&lt;li&gt;Uploader name&lt;/li&gt;
&lt;li&gt;Attachment type shortname&lt;/li&gt;
&lt;li&gt;Checkbox for License Info enabled if CLX or CLI (combined)&lt;/li&gt;
&lt;li&gt;Checkbox for Conclusions enabled if CLX or CLI and ends with &amp;ldquo;.rdf&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Checkbox for Source Code bundle enabled if SRC or SRS&lt;/li&gt;
&lt;li&gt;Checkbox for Other is always enabled&lt;/li&gt;
&lt;li&gt;All the checkboxes are disabled if the user does not have write permission (admin or contributor or clearing admin or clearing expert)&lt;/li&gt;
&lt;li&gt;Subproject&amp;rsquo;s releases are indented&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified details are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="save-usages-button"&gt;Save Usages Button&lt;/h3&gt;
&lt;h4 id="save-usages-message"&gt;Save Usages Message&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-AU-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Save Usages&amp;rdquo; button shows a saved message.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Attachment Usages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Save Usages&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A saved message is shown.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Project - License Info Usages</title><link>https://eclipse.dev/sw360/docs/development/completiontests/projects-licenseinfousage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/projects-licenseinfousage/</guid><description>&lt;h2 id="sw360-generate-license-info-page-test-cases"&gt;SW360 &amp;ldquo;Generate License Info&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="page-similarity"&gt;Page Similarity&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the page shown when the &amp;ldquo;Generate License Info&amp;rdquo; button is clicked in the &amp;ldquo;License Clearing Tab&amp;rdquo; is similar to the Attachment Usages page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Clearing Tab&amp;rdquo; in a project.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Generate License Info&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A page similar to the Attachment Usages page is shown.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="top-buttons-and-toggles"&gt;Top Buttons and Toggles&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Download&amp;rdquo; button and the &amp;ldquo;Show All&amp;rdquo; or &amp;ldquo;Only Approved&amp;rdquo; toggle on top. The &amp;ldquo;Only Approved&amp;rdquo; toggle should show only approved CLI attachments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Only Approved&amp;rdquo; toggle.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Download&amp;rdquo; button and toggles are present. The &amp;ldquo;Only Approved&amp;rdquo; toggle shows only approved CLI attachments.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="selection-restore-message"&gt;Selection Restore Message&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the selection restore message.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the message section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The selection restore message is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="license-info-table"&gt;License Info Table&lt;/h3&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the License Info Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Info Table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Checkbox (clicking will uncheck all checkboxes (except self) and restore selection at page load)&lt;/li&gt;
&lt;li&gt;Lvl (starts at 1, increases at each subproject)&lt;/li&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Conclusions&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;State&lt;/li&gt;
&lt;li&gt;Uploaded by&lt;/li&gt;
&lt;li&gt;Clearing Team&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="row-colors"&gt;Row Colors&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the row colors based on the number of attachments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Info Table.&lt;/li&gt;
&lt;li&gt;Verify the row colors:
&lt;ul&gt;
&lt;li&gt;Red for no attachments&lt;/li&gt;
&lt;li&gt;Green for 1 attachment&lt;/li&gt;
&lt;li&gt;Yellow for more than 1 attachment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The row colors are displayed as specified.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="release-clearing-state"&gt;Release Clearing State&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the State column displays the Release&amp;rsquo;s clearing state.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Info Table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The State column displays the Release&amp;rsquo;s clearing state.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="attachment-rows"&gt;Attachment Rows&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the details displayed for each attachment row.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Info Table.&lt;/li&gt;
&lt;li&gt;Click on an attachment row to expand it.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following details:
&lt;ul&gt;
&lt;li&gt;Checkbox if License Info is selected for the attachment&lt;/li&gt;
&lt;li&gt;Level number&lt;/li&gt;
&lt;li&gt;If file ends with .rdf and concluded license is enabled, a checkbox for that&lt;/li&gt;
&lt;li&gt;If used in number of projects else show &amp;ldquo;Not used in any projects yet&amp;rdquo; in the Type column&lt;/li&gt;
&lt;li&gt;Attachment status&lt;/li&gt;
&lt;li&gt;Uploader name&lt;/li&gt;
&lt;li&gt;Uploader Department&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified details are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="expanded-attachment-details"&gt;Expanded Attachment Details&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the details displayed when an attachment is expanded.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Info Table.&lt;/li&gt;
&lt;li&gt;Click on an attachment row to expand it.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following details:
&lt;ul&gt;
&lt;li&gt;Lvl&lt;/li&gt;
&lt;li&gt;Name of license&lt;/li&gt;
&lt;li&gt;License text from the CLI&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on a license name to verify the checkbox behavior.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified details are present and function as described. Clicking on a license name enables the checkbox of the attachment, and individual licenses can be excluded.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="subprojects"&gt;Subprojects&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Use selection of this subproject&amp;rdquo; button and the warning next to it. Clicking this button should import the usage for the subproject.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the subproject section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Use selection of this subproject&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The button and warning are present. Clicking the button imports the usage for the subproject.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="download-button"&gt;Download Button&lt;/h3&gt;
&lt;h4 id="report-generation-options"&gt;Report Generation Options&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-LI-AU-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking the &amp;ldquo;Download&amp;rdquo; button shows a report generation options popup. Clicking &amp;ldquo;Download&amp;rdquo; on the popup triggers the report and also saves the attachment usage of the current page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate License Info&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Download&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the report generation options popup.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Download&amp;rdquo; button in the popup.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The report generation options popup is shown. Clicking &amp;ldquo;Download&amp;rdquo; in the popup triggers the report and saves the attachment usage of the current page.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Project - Source Bundle Usages</title><link>https://eclipse.dev/sw360/docs/development/completiontests/projects-sourcebundle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/projects-sourcebundle/</guid><description>&lt;h2 id="sw360-generate-source-code-bundle-page-test-cases"&gt;SW360 &amp;ldquo;Generate Source Code Bundle&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="page-similarity"&gt;Page Similarity&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the page shown when the &amp;ldquo;Generate Source Code&amp;rdquo; button is clicked in the &amp;ldquo;License Clearing Tab&amp;rdquo; is similar to the Generate License Info usage page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Clearing Tab&amp;rdquo; in a project.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Generate Source Code&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A page similar to the Generate License Info usage page is shown.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="top-button"&gt;Top Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Download&amp;rdquo; button on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate Source Code Bundle&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Download&amp;rdquo; button is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="selection-restore-message"&gt;Selection Restore Message&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the selection restore message.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate Source Code Bundle&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the message section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The selection restore message is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="source-code-bundle-table"&gt;Source Code Bundle Table&lt;/h3&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the Source Code Bundle Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate Source Code Bundle&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Source Code Bundle Table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Checkbox (clicking will uncheck all checkboxes (except self) and restore selection at page load)&lt;/li&gt;
&lt;li&gt;Lvl (starts at 1, increases at each subproject)&lt;/li&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Conclusions&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;State&lt;/li&gt;
&lt;li&gt;Uploaded by&lt;/li&gt;
&lt;li&gt;Clearing Team&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="attachment-type"&gt;Attachment Type&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the table displays only attachments of type SRC, and they cannot be expanded.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate Source Code Bundle&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Source Code Bundle Table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Only attachments of type SRC are displayed, and they cannot be expanded.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="row-colors"&gt;Row Colors&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the row colors based on the number of attachments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate Source Code Bundle&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Source Code Bundle Table.&lt;/li&gt;
&lt;li&gt;Verify the row colors:
&lt;ul&gt;
&lt;li&gt;Red for no attachments&lt;/li&gt;
&lt;li&gt;Green for 1 attachment&lt;/li&gt;
&lt;li&gt;Yellow for more than 1 attachment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The row colors are displayed as specified.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="release-clearing-state"&gt;Release Clearing State&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the State column displays the Release&amp;rsquo;s clearing state.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate Source Code Bundle&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Source Code Bundle Table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The State column displays the Release&amp;rsquo;s clearing state.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="attachment-rows"&gt;Attachment Rows&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the details displayed for each attachment row.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate Source Code Bundle&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Source Code Bundle Table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following details:
&lt;ul&gt;
&lt;li&gt;Checkbox if License Info is selected for the attachment&lt;/li&gt;
&lt;li&gt;Level number&lt;/li&gt;
&lt;li&gt;If used in number of projects else show &amp;ldquo;Not used in any projects yet&amp;rdquo; in the Type column&lt;/li&gt;
&lt;li&gt;Attachment status&lt;/li&gt;
&lt;li&gt;Uploader name&lt;/li&gt;
&lt;li&gt;Uploader Department&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified details are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="download-button"&gt;Download Button&lt;/h3&gt;
&lt;h4 id="report-generation"&gt;Report Generation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PROJ-SCB-AU-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking the &amp;ldquo;Download&amp;rdquo; button triggers the bungle generation and saves the attachment usage of the current page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Generate Source Code Bundle&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Download&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The bundle is generated, and the attachment usage of the current page is saved.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Authorization Concept</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-authorization-concept/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-authorization-concept/</guid><description>&lt;p&gt;SW360 uses a tiered authorization model that balances global roles with
granular, record-level access. In v20, the architecture clearly separates
&lt;strong&gt;Authentication&lt;/strong&gt; (handled by &lt;strong&gt;Keycloak&lt;/strong&gt; or an OIDC provider) from
&lt;strong&gt;Authorization&lt;/strong&gt; (handled by the &lt;strong&gt;SW360 Backend&lt;/strong&gt; using CouchDB as the
source of truth).&lt;/p&gt;
&lt;h2 id="role-management"&gt;Role Management&lt;/h2&gt;
&lt;p&gt;Role management is performed through the SW360 Frontend in the &lt;strong&gt;Admin &amp;gt; Users&lt;/strong&gt;
section. An administrator can search for users and modify their primary and
secondary roles. These changes are stored in CouchDB and synchronized to Keycloak
(if enabled) via federation.&lt;/p&gt;</description></item><item><title>Components Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/components-main/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/components-main/</guid><description>&lt;h2 id="sw360-main-components-page-test-cases"&gt;SW360 &amp;ldquo;Main Components&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="advance-search-on-the-left-hand"&gt;Advance Search on the Left Hand&lt;/h3&gt;
&lt;h4 id="search-fields"&gt;Search Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the advance search on the left hand contains the specified search fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the advance search section on the left hand.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following search fields:
&lt;ul&gt;
&lt;li&gt;Component Name&lt;/li&gt;
&lt;li&gt;Categories&lt;/li&gt;
&lt;li&gt;Component Type (one of OSS, COTS, Internal, Inner Source, Service, Freeware, Code Snippet)&lt;/li&gt;
&lt;li&gt;Languages (type to get defaults)&lt;/li&gt;
&lt;li&gt;Software Platforms (type to get defaults)&lt;/li&gt;
&lt;li&gt;Operating Systems (type to get defaults)&lt;/li&gt;
&lt;li&gt;Vendors (type to get values)&lt;/li&gt;
&lt;li&gt;Main licenses&lt;/li&gt;
&lt;li&gt;Created by&lt;/li&gt;
&lt;li&gt;Created on (with filter type adding or removing date field)&lt;/li&gt;
&lt;li&gt;A checkbox &amp;ldquo;Exact Match&amp;rdquo; with a Search button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified search fields are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="search-behavior"&gt;Search Behavior&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the search behavior based on the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the advance search section on the left hand.&lt;/li&gt;
&lt;li&gt;Enter search criteria in the search fields.&lt;/li&gt;
&lt;li&gt;Perform a search without checking the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;li&gt;Verify that the endpoint has &amp;ldquo;luceneSearch=true&amp;rdquo; and uses full-text search.&lt;/li&gt;
&lt;li&gt;Check the &amp;ldquo;Exact Match&amp;rdquo; checkbox and perform a search.&lt;/li&gt;
&lt;li&gt;Verify that the endpoint has &amp;ldquo;luceneSearch=false&amp;rdquo; and uses exact match.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The search behavior changes based on the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="buttons-in-middle"&gt;Buttons in Middle&lt;/h3&gt;
&lt;h4 id="add-component-button"&gt;&amp;ldquo;Add Component&amp;rdquo; Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Add Component&amp;rdquo; button opens a form to create a new component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Component&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A form to create a new component is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="export-spreadsheet-dropdown"&gt;&amp;ldquo;Export Spreadsheet&amp;rdquo; Dropdown&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Export Spreadsheet&amp;rdquo; dropdown generates an Excel of the search result with either &amp;ldquo;Components only&amp;rdquo; or &amp;ldquo;Components with releases&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Perform a search using the advance search fields.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Export Spreadsheet&amp;rdquo; dropdown and select an option.&lt;/li&gt;
&lt;li&gt;Verify that the exported sheet has restricted data based on the advance search values from the left panel.&lt;/li&gt;
&lt;li&gt;Check if the file is downloaded or if a message is shown indicating that an email will be sent based on server configuration.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Excel file is generated with the correct data, and the file is either downloaded or an email is sent based on server configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="table-in-middle"&gt;Table in Middle&lt;/h3&gt;
&lt;h4 id="page-size"&gt;Page Size&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the table can change page size, with a default of 10.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the table in the middle.&lt;/li&gt;
&lt;li&gt;Change the page size and verify the default is 10.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table page size can be changed, and the default is 10.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="print-button"&gt;&amp;ldquo;Print&amp;rdquo; Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Print&amp;rdquo; button on the right prints the Table HTML component to the browser.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Print&amp;rdquo; button on the right of the table.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Print&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Table HTML component is printed to the browser.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-vendor"&gt;Column &amp;ldquo;Vendor&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Vendor&amp;rdquo; column displays the vendor name.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Vendor&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The vendor name is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-component-name"&gt;Column &amp;ldquo;Component Name&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Component Name&amp;rdquo; column displays the component name with a clickable link to open the component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Component Name&amp;rdquo; column in the table.&lt;/li&gt;
&lt;li&gt;Click on a component name to open the component.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The component name is displayed, and clicking on it opens the component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-main-licenses"&gt;Column &amp;ldquo;Main licenses&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Main licenses&amp;rdquo; column displays truncated lists of main licenses, with a clickable link to open the license.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Main licenses&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The truncated lists of main licenses are displayed, and clicking on a license opens the license.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-component-type"&gt;Column &amp;ldquo;Component Type&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Component Type&amp;rdquo; column displays the component type.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Component Type&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The component type is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-actions"&gt;Column &amp;ldquo;Actions&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Actions&amp;rdquo; column shows an Edit Icon or Delete icon.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Actions&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Edit Icon or Delete icon is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pagination-components"&gt;Pagination Components&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the table bottom has pagination components.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Locate the table in the middle.&lt;/li&gt;
&lt;li&gt;Scroll to the bottom of the table and verify the presence of pagination components.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Pagination components are present at the bottom of the table.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Release Signing</title><link>https://eclipse.dev/sw360/docs/development/dev-release-signing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/dev-release-signing/</guid><description>&lt;h1 id="release-signing-and-verification"&gt;Release Signing and Verification&lt;/h1&gt;
&lt;p&gt;To ensure the integrity and authenticity of SW360 deliverables, we use
cryptographic signing for both our container images and source code tags.&lt;/p&gt;
&lt;h2 id="container-image-signing-cosign"&gt;Container Image Signing (Cosign)&lt;/h2&gt;
&lt;p&gt;All Docker images published to the GitHub Container Registry (GHCR) are signed
using &lt;strong&gt;Sigstore/Cosign&lt;/strong&gt; with keyless signing (OIDC). This process links the
image to the specific GitHub Action workflow that built it.&lt;/p&gt;
&lt;h3 id="how-to-verify"&gt;How to Verify&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Cosign&lt;/strong&gt;: Follow the &lt;a href="https://docs.sigstore.dev/cosign/system_config/installation/"&gt;official installation
guide&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Add Component</title><link>https://eclipse.dev/sw360/docs/development/completiontests/components-create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/components-create/</guid><description>&lt;h2 id="sw360-add-component-page-test-cases"&gt;SW360 &amp;ldquo;Add Component&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="new-page-opening"&gt;New Page Opening&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-CRT-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that upon clicking &amp;ldquo;Add Component,&amp;rdquo; a new page opens with a message on top &amp;ldquo;Creating new Component.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Components page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Component&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new page opens with the message &amp;ldquo;Creating new Component&amp;rdquo; on top.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="general-information-section"&gt;General Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-CRT-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;General Information&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;General Information&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Name (required)&lt;/li&gt;
&lt;li&gt;Created by&lt;/li&gt;
&lt;li&gt;Categories (required) (type to auto complete)&lt;/li&gt;
&lt;li&gt;Component Type (required) (one of OSS, COTS, Internal, Inner Source, Service, Freeware, Code Snippet) (info hover beneath)&lt;/li&gt;
&lt;li&gt;CycloneDX Component Type (one of CDX type) (info hover beneath)&lt;/li&gt;
&lt;li&gt;Default vendor (click to open vendor popup) (clear button beneath)&lt;/li&gt;
&lt;li&gt;Homepage URL&lt;/li&gt;
&lt;li&gt;VCS/Repository URL&lt;/li&gt;
&lt;li&gt;Block URL&lt;/li&gt;
&lt;li&gt;Wiki URL&lt;/li&gt;
&lt;li&gt;Mailing List URL&lt;/li&gt;
&lt;li&gt;Short Description (text area)&lt;/li&gt;
&lt;li&gt;Modified By&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="roles-section"&gt;Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-CRT-015&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Roles&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Component Owner (single value)&lt;/li&gt;
&lt;li&gt;Owner Accounting Unit&lt;/li&gt;
&lt;li&gt;Owner Billing Group&lt;/li&gt;
&lt;li&gt;Owner Country&lt;/li&gt;
&lt;li&gt;Moderators (multi value)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-roles-section"&gt;Additional Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-CRT-016&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Roles&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Roles&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional roles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="external-ids-section"&gt;External Ids Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-CRT-017&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;External Ids&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;External Ids&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to External Ids&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the new row:
&lt;ul&gt;
&lt;li&gt;External Id key on the left&lt;/li&gt;
&lt;li&gt;Type to get default values&lt;/li&gt;
&lt;li&gt;External Id value on the right&lt;/li&gt;
&lt;li&gt;Row delete button on the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-data-section"&gt;Additional Data Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-CRT-018&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Data&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="create-component-button"&gt;Create Component Button&lt;/h3&gt;
&lt;h4 id="component-creation"&gt;Component Creation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-CRT-019&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that upon hitting the &amp;ldquo;Create Component&amp;rdquo; button, the component is saved, and the user is redirected to the component edit page for the newly created component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields and any additional information.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Create Component&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The component is saved, and the user is redirected to the component edit page for the newly created component.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Keycloak Authentication</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-keycloak-authentication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-keycloak-authentication/</guid><description>&lt;p&gt;This guide covers the installation and configuration of Keycloak for SW360.
While manual configuration is possible, &lt;strong&gt;using the provided Terraform scripts
is the highy recommended approach&lt;/strong&gt; to maintain a modern, version-controlled
authentication setup.&lt;/p&gt;
&lt;h2 id="installation-brief"&gt;Installation (Brief)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Java 21&lt;/strong&gt;: Ensure OpenJDK 21 is installed and &lt;code&gt;JAVA_HOME&lt;/code&gt; is set.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;: Install PostgreSQL 14 or higher and create a database/user
for Keycloak:
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#069;font-weight:bold"&gt;CREATE&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;USER&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;keycloak&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;WITH&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;ENCRYPTED&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;PASSWORD&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#39;mystrongpassword&amp;#39;&lt;/span&gt;;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#069;font-weight:bold"&gt;CREATE&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;DATABASE&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;keycloak;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#069;font-weight:bold"&gt;GRANT&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;ALL&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;PRIVILEGES&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;ON&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;DATABASE&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;keycloak&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#069;font-weight:bold"&gt;TO&lt;/span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;keycloak;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keycloak&lt;/strong&gt;: Download the latest Keycloak (e.g., v26+) and extract it
to &lt;code&gt;/opt/keycloak&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="keycloak-configuration-keycloakconf"&gt;Keycloak Configuration (&lt;code&gt;keycloak.conf&lt;/code&gt;)&lt;/h2&gt;
&lt;p&gt;For a development setup, you can use the following &lt;code&gt;keycloak.conf&lt;/code&gt;. For
production, refer to the &lt;a href="https://eclipse.dev/sw360/docs/deployment/deploy-keycloak-authentication/#production-deployment-tips"&gt;Production Tips&lt;/a&gt; below.&lt;/p&gt;</description></item><item><title>Edit Component</title><link>https://eclipse.dev/sw360/docs/development/completiontests/components-edit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/components-edit/</guid><description>&lt;h2 id="sw360-edit-component-page-test-cases"&gt;SW360 &amp;ldquo;Edit Component&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="info-message-on-page-load"&gt;Info Message on Page Load&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-EDIT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the info message on top on page load: &amp;ldquo;Success: You are editing the original document.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The info message &amp;ldquo;Success: You are editing the original document.&amp;rdquo; is displayed on top.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="general-information-section"&gt;General Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-EDIT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;General Information&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;General Information&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Name (required)&lt;/li&gt;
&lt;li&gt;Created by&lt;/li&gt;
&lt;li&gt;Categories (required) (type to auto complete)&lt;/li&gt;
&lt;li&gt;Component Type (required) (one of OSS, COTS, Internal, Inner Source, Service, Freeware, Code Snippet) (info hover beneath)&lt;/li&gt;
&lt;li&gt;CycloneDX Component Type (one of CDX type) (info hover beneath)&lt;/li&gt;
&lt;li&gt;Default vendor (click to open vendor popup) (clear button beneath)&lt;/li&gt;
&lt;li&gt;Homepage URL&lt;/li&gt;
&lt;li&gt;VCS/Repository URL&lt;/li&gt;
&lt;li&gt;Block URL&lt;/li&gt;
&lt;li&gt;Wiki URL&lt;/li&gt;
&lt;li&gt;Mailing List URL&lt;/li&gt;
&lt;li&gt;Short Description (text area)&lt;/li&gt;
&lt;li&gt;Modified By&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="roles-section"&gt;Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-EDIT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Roles&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Component Owner (single value)&lt;/li&gt;
&lt;li&gt;Owner Accounting Unit&lt;/li&gt;
&lt;li&gt;Owner Billing Group&lt;/li&gt;
&lt;li&gt;Owner Country&lt;/li&gt;
&lt;li&gt;Moderators (multi value)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-roles-section"&gt;Additional Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-EDIT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Roles&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Roles&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional roles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="external-ids-section"&gt;External Ids Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-EDIT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;External Ids&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;External Ids&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to External Ids&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the new row:
&lt;ul&gt;
&lt;li&gt;External Id key on the left&lt;/li&gt;
&lt;li&gt;Type to get default values&lt;/li&gt;
&lt;li&gt;External Id value on the right&lt;/li&gt;
&lt;li&gt;Row delete button on the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-data-section"&gt;Additional Data Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-EDIT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Data&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="releases-tab"&gt;Releases Tab&lt;/h3&gt;
&lt;h4 id="releases-table"&gt;Releases Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-EDIT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the table with releases in the Releases Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Releases Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following column:
&lt;ul&gt;
&lt;li&gt;Name Version (clickable link to release)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified column is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="add-releases-button"&gt;Add Releases Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-EDIT-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Add Releases&amp;rdquo; button in the Releases Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Releases Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Releases&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new page opens to create a release.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="attachments-tab"&gt;Attachments Tab&lt;/h3&gt;
&lt;h4 id="attachments-table"&gt;Attachments Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; /sw360/docs/development/completiontests/projects-edit/#attachments-table&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Security Best Practices</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-secure-deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-secure-deployment/</guid><description>&lt;p&gt;Securing an SW360 deployment involves multiple layers, from the infrastructure
and container orchestration to the application and identity management. For v20,
the architecture relies on a microservices stack (Spring Boot, Next.js, Keycloak)
which necessitates new security patterns.&lt;/p&gt;
&lt;h2 id="recommended-container-based-security"&gt;Recommended: Container-Based Security&lt;/h2&gt;
&lt;p&gt;The easiest way to manage a secure SW360 instance is through &lt;strong&gt;container-based
deployments&lt;/strong&gt; using Docker or Podman. This allows for clear service isolation and
centralized secret management.&lt;/p&gt;
&lt;h3 id="1-secret-management"&gt;1. Secret Management&lt;/h3&gt;
&lt;p&gt;Never store plain-text passwords in environment variables if possible. Use &lt;strong&gt;Docker
Secrets&lt;/strong&gt; for sensitive data:&lt;/p&gt;</description></item><item><title>Component Details</title><link>https://eclipse.dev/sw360/docs/development/completiontests/components-details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/components-details/</guid><description>&lt;h2 id="sw360-component-details-page-test-cases"&gt;SW360 &amp;ldquo;Component Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Edit Component&amp;rdquo;, &amp;ldquo;Merge&amp;rdquo;, &amp;ldquo;Split&amp;rdquo;, and &amp;ldquo;Subscribe&amp;rdquo;/&amp;ldquo;Unsubscribe&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="description-of-component"&gt;Description of Component&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the description of the component in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Summary Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The description of the component is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="general-section"&gt;General Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;General&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;General&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;ID of the Component&lt;/li&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Created on&lt;/li&gt;
&lt;li&gt;Created by (mailto link)&lt;/li&gt;
&lt;li&gt;Modified on&lt;/li&gt;
&lt;li&gt;Modified by (mailto link)&lt;/li&gt;
&lt;li&gt;Component Type&lt;/li&gt;
&lt;li&gt;CycloneDX Component Type&lt;/li&gt;
&lt;li&gt;Default vendor (can be clickable link)&lt;/li&gt;
&lt;li&gt;Homepage (click URL)&lt;/li&gt;
&lt;li&gt;VCS/Repository URL (click URL)&lt;/li&gt;
&lt;li&gt;Block (click URL)&lt;/li&gt;
&lt;li&gt;Wiki (click URL)&lt;/li&gt;
&lt;li&gt;Miling list (click URL)&lt;/li&gt;
&lt;li&gt;External IDs (as UL, key in bold, value next to it)&lt;/li&gt;
&lt;li&gt;Additional data (same as External IDs)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="release-aggregate-data-section"&gt;Release Aggregate Data Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Release Aggregate Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Aggregate Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following details as a comma-separated list:
&lt;ul&gt;
&lt;li&gt;Vendors&lt;/li&gt;
&lt;li&gt;Languages&lt;/li&gt;
&lt;li&gt;Platforms&lt;/li&gt;
&lt;li&gt;Operating Systems&lt;/li&gt;
&lt;li&gt;Main licenses&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified details are present as a comma-separated list.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="roles-section"&gt;Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Component Owner (mailto link)&lt;/li&gt;
&lt;li&gt;Owner Accounting Unit&lt;/li&gt;
&lt;li&gt;Owner Billing Group&lt;/li&gt;
&lt;li&gt;Owner Country&lt;/li&gt;
&lt;li&gt;Moderators (comma-separated mailto list)&lt;/li&gt;
&lt;li&gt;Subscribers (comma-separated mailto list)&lt;/li&gt;
&lt;li&gt;Additional Roles&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verify that all users displayed are mailto links.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="component-used-by"&gt;Component Used By&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the total count of visible and restricted projects using the component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Summary Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The total count of visible and restricted projects using the component is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="table-to-visible-projects"&gt;Table to Visible Projects&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the table of visible projects with the specified columns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Project name (with version, clickable link to open project)&lt;/li&gt;
&lt;li&gt;Group&lt;/li&gt;
&lt;li&gt;Responsible&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="component-used-by-other-components"&gt;Component Used By Other Components&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-020&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the table &amp;ldquo;Component name is used by the following components&amp;rdquo; if a release of the current component is linked to another release of another component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Vendor&lt;/li&gt;
&lt;li&gt;Name (Link to open component)&lt;/li&gt;
&lt;li&gt;Main licenses&lt;/li&gt;
&lt;li&gt;Component Type&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present if a release of the current component is linked to another release of another component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="release-overview-tab"&gt;Release Overview Tab&lt;/h3&gt;
&lt;h4 id="releases-table"&gt;Releases Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the table of releases in the Release Overview Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Release Overview Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Version (click to open release)&lt;/li&gt;
&lt;li&gt;Clearing State&lt;/li&gt;
&lt;li&gt;Clearing Report (download link to approved reports, hover to see filename, status, comment, and created)&lt;/li&gt;
&lt;li&gt;Release Mainline State&lt;/li&gt;
&lt;li&gt;Action (FOSSology, edit, duplicate, link project, merge, delete)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verify the presence of a search bar on top.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the search bar is functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="attachments-tab"&gt;Attachments Tab&lt;/h3&gt;
&lt;h4 id="attachments-table"&gt;Attachments Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#attachments-table"&gt;PROJ-DTL-016&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerabilities-tab"&gt;Vulnerabilities Tab&lt;/h3&gt;
&lt;h4 id="tab-name-and-count"&gt;Tab Name and Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of &amp;ldquo;number of checked or unchecked vulnerabilities + number of incorrect vulnerabilities&amp;rdquo; on the tab name.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerabilities Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified count is displayed on the tab name.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="total-vulnerabilities"&gt;Total Vulnerabilities&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the total number of vulnerabilities on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerabilities Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The total number of vulnerabilities is displayed on top.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="vulnerabilities-table"&gt;Vulnerabilities Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the vulnerabilities table as per test cases DTL-017 &amp;amp; DTL-020.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerabilities Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the specified columns.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="changing-vulnerability-state"&gt;Changing Vulnerability State&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-DTL-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the behavior when changing the state of selected vulnerability rows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerabilities Tab.&lt;/li&gt;
&lt;li&gt;Select vulnerability rows to change the state.&lt;/li&gt;
&lt;li&gt;Verify that the updated row&amp;rsquo;s verification column updates the state.&lt;/li&gt;
&lt;li&gt;Verify that the hover icon says &amp;ldquo;You just changed this value. Please reload page.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Verify that the count from point a changes to a reload icon with a warning background.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified behavior is observed when changing the state of selected vulnerability rows.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="change-log-tab"&gt;Change Log Tab&lt;/h3&gt;
&lt;h4 id="change-log-table"&gt;Change Log Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#toggle-on-top"&gt;PROJ-DTL-021&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#changelog-table"&gt;PROJ-DTL-022&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#opening-changelog"&gt;PROJ-DTL-023&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#basic-info-section"&gt;PROJ-DTL-024&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#changed-fields-table"&gt;PROJ-DTL-025&lt;/a&gt; and
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#returning-to-list"&gt;PROJ-DTL-026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Data Backup Strategy</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-data-backup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-data-backup/</guid><description>&lt;p&gt;Regular backups are critical for maintaining the integrity and availability of
your SW360 instance. Given the importance of compliance data, a robust backup
strategy ensures that you can recover from hardware failures, data corruption,
or accidental deletions.&lt;/p&gt;
&lt;h2 id="backup-frequency--retention-policy"&gt;Backup Frequency &amp;amp; Retention Policy&lt;/h2&gt;
&lt;p&gt;For production environments, the following retention policy is recommended as a
baseline:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;Backup Type&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Frequency&lt;/th&gt;
 &lt;th style="text-align: left"&gt;Retention Period&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;High-Frequency&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Every 24 hours&lt;/td&gt;
 &lt;td style="text-align: left"&gt;14 days&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;Long-Term&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Every 30 days&lt;/td&gt;
 &lt;td style="text-align: left"&gt;1 year&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="recommended-offline-backups"&gt;Recommended: Offline Backups&lt;/h2&gt;
&lt;p&gt;For SW360 v20+, &lt;strong&gt;offline backups&lt;/strong&gt; are the recommended method for ensuring
maximum data consistency. This involves briefly stopping the services to capture
a point-in-time snapshot of the underlying databases and configuration files.&lt;/p&gt;</description></item><item><title>ADR Template (DAR/SWOT)</title><link>https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/</guid><description>&lt;h1 id="adr-template-decision-analysis-and-resolution-dar"&gt;ADR Template: Decision Analysis and Resolution (DAR)&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Template Version:&lt;/strong&gt; 1.0&lt;br&gt;
&lt;strong&gt;Based on:&lt;/strong&gt; ABT UI Technology Stack Decision Framework&lt;br&gt;
&lt;strong&gt;Approach:&lt;/strong&gt; SWOT Analysis + T-Shirt Sizing for Weighted Criteria Evaluation&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="adr-xxx-decision-title"&gt;ADR-XXX: [Decision Title]&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Created by:&lt;/strong&gt; [Author Name]&lt;br&gt;
&lt;strong&gt;Last updated:&lt;/strong&gt; [Date]&lt;br&gt;
&lt;strong&gt;Estimated read time:&lt;/strong&gt; [X] minutes&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#background"&gt;Background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#goal"&gt;Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#key-principles"&gt;Key Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#key-inputs-assumptions-and-restrictions"&gt;Key Inputs, Assumptions and Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#options-analysis"&gt;Options Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#option-1---name"&gt;Option 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#option-2---name"&gt;Option 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#option-3---name"&gt;Option 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#criteria-for-making-a-decision"&gt;Criteria for Making a Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#final-decision"&gt;Final Decision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#contributors"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eclipse.dev/sw360/docs/architecture/decisions/adr-template/#discussion--brainstorming"&gt;Discussion &amp;amp; Brainstorming&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;[Describe the experience and context that led to this decision point. Include:]&lt;/p&gt;</description></item><item><title>Business Rule Specification Template</title><link>https://eclipse.dev/sw360/docs/businessrules/br-template/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/businessrules/br-template/</guid><description>&lt;h1 id="business-rule-specification-template"&gt;Business Rule Specification Template&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Template Version:&lt;/strong&gt; 1.0&lt;br&gt;
&lt;strong&gt;Standards Basis:&lt;/strong&gt; OMG SBVR / RuleSpeak® + Specification by Example (SBE) / ISO/IEC/IEEE 29148 + EARS&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0cf;font-weight:bold"&gt;---&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;id&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;BR-[DOMAIN]-[NNN]&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;title&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;[Rule Title]&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;domain&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;[Projects | Components | Releases | Licenses | Clearing | Security]&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;rule_type&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;[Behavioral | Definitional | Constraint]&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;status&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;[Draft | Approved | Deprecated]&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;governing_config&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;[Optional configuration key or none]&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;impacted_services&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#c30"&gt;&amp;#34;[ServiceName / Component]&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;related_issues&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;- &lt;span style="color:#c30"&gt;&amp;#34;[#IssueNumber]&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#309;font-weight:bold"&gt;last_verified&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#c30"&gt;&amp;#34;YYYY-MM-DD&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0cf;font-weight:bold"&gt;---&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="1-executive-summary--statement"&gt;1. Executive Summary &amp;amp; Statement&lt;/h2&gt;
&lt;h3 id="11-formal-statement-rulespeak--ears"&gt;1.1 Formal Statement (RuleSpeak® / EARS)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;While&lt;/strong&gt; [precondition state, e.g. entity in status X],&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If&lt;/strong&gt; [condition/trigger, e.g. configuration property Y is enabled],&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; the system &lt;strong&gt;shall&lt;/strong&gt; [allow/deny/execute specific behavior].&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Otherwise&lt;/strong&gt;, the system &lt;strong&gt;shall&lt;/strong&gt; [fallback / default behavior].&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-purpose--risk-mitigated"&gt;1.2 Purpose &amp;amp; Risk Mitigated&lt;/h3&gt;
&lt;p&gt;[Describe why this business rule exists, what business or operational risks it prevents, and the domain rationale.]&lt;/p&gt;</description></item><item><title>Create Release</title><link>https://eclipse.dev/sw360/docs/development/completiontests/release-create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/release-create/</guid><description>&lt;h2 id="sw360-add-releases-page-test-cases"&gt;SW360 &amp;ldquo;Add Releases&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="button-visibility"&gt;Button Visibility&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the button to open the &amp;ldquo;Add Releases&amp;rdquo; page is visible from the &amp;ldquo;Edit Component&amp;rdquo; page, under the &amp;ldquo;Releases&amp;rdquo; Tab only.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Releases&amp;rdquo; Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The button to open the &amp;ldquo;Add Releases&amp;rdquo; page is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="release-summary-section"&gt;Release Summary Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Release Summary&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Summary&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the form:
&lt;ul&gt;
&lt;li&gt;Vendor (set the default value if Component has default vendor set) (clear button beneath)&lt;/li&gt;
&lt;li&gt;Name (required, readonly with component name)&lt;/li&gt;
&lt;li&gt;Version (required)&lt;/li&gt;
&lt;li&gt;Programming Languages (type to get default values, multivalue)&lt;/li&gt;
&lt;li&gt;Operating Systems (type to get default values, multivalue)&lt;/li&gt;
&lt;li&gt;CPE ID (hover info beneath)&lt;/li&gt;
&lt;li&gt;Software Platforms (type to get default values, multivalue)&lt;/li&gt;
&lt;li&gt;Release date&lt;/li&gt;
&lt;li&gt;Main Licenses (multivalue)&lt;/li&gt;
&lt;li&gt;Other licenses (multivalue)&lt;/li&gt;
&lt;li&gt;Source Code Download URL&lt;/li&gt;
&lt;li&gt;Binary Download URL&lt;/li&gt;
&lt;li&gt;Clearing State (New, readonly)&lt;/li&gt;
&lt;li&gt;Release Mainline State (dropdown, with info hover beneath)&lt;/li&gt;
&lt;li&gt;Created On&lt;/li&gt;
&lt;li&gt;Created By&lt;/li&gt;
&lt;li&gt;Contributors (multivalue)&lt;/li&gt;
&lt;li&gt;Moderators (multivalue)&lt;/li&gt;
&lt;li&gt;Modified On&lt;/li&gt;
&lt;li&gt;Modified By&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-roles-section"&gt;Additional Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Roles&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional roles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="external-ids-section"&gt;External IDs Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;External IDs&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;External IDs&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to External Ids&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the new row:
&lt;ul&gt;
&lt;li&gt;External Id key on the left&lt;/li&gt;
&lt;li&gt;Type to get default values&lt;/li&gt;
&lt;li&gt;External Id value on the right&lt;/li&gt;
&lt;li&gt;Row delete button on the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-data-section"&gt;Additional Data Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Data&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="release-repository-section"&gt;Release Repository Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Release Repository&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Repository&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Repository Type (dropdown)&lt;/li&gt;
&lt;li&gt;Repository URL (textbox)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-releases-tab"&gt;Linked Releases Tab&lt;/h3&gt;
&lt;h4 id="click-to-add-releases-button"&gt;Click to Add Releases Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Click to add Releases&amp;rdquo; button and the releases table in the Linked Releases Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Releases Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add Releases&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Vendor name&lt;/li&gt;
&lt;li&gt;Release name&lt;/li&gt;
&lt;li&gt;Release version&lt;/li&gt;
&lt;li&gt;Release relation (info hover) (dropdown)&lt;/li&gt;
&lt;li&gt;delete icon&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The button and table with the specified columns are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-packages-tab"&gt;Linked Packages Tab&lt;/h3&gt;
&lt;h4 id="add-packages-button"&gt;Add Packages Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Add Packages&amp;rdquo; button and the table in the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Packages&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Package Name&lt;/li&gt;
&lt;li&gt;Package Version&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;li&gt;Package Manager&lt;/li&gt;
&lt;li&gt;delete icon&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The button and table with the specified columns are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="create-release-button"&gt;Create Release Button&lt;/h3&gt;
&lt;h4 id="release-creation"&gt;Release Creation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; RED-CRT-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that upon clicking the &amp;ldquo;Create Release&amp;rdquo; button, the release is created, and the user is redirected to the &amp;ldquo;Edit Release&amp;rdquo; page of the created release.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields and any additional information.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Create Release&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The release is created, and the user is redirected to the &amp;ldquo;Edit Release&amp;rdquo; page of the created release.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Dependency Network Feature</title><link>https://eclipse.dev/sw360/docs/userguide/dependency_network/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/dependency_network/</guid><description>&lt;h2 id="how-to-enable-this-feature"&gt;How to enable this feature&lt;/h2&gt;
&lt;p&gt;To use this function, please:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Build the source code and deploy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add config &lt;strong&gt;enable.flexible.project.release.relationship=true&lt;/strong&gt; (/etc/sw360/sw360.properties) to enable the feature.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The following changes will work when &lt;strong&gt;enable.flexible.project.release.relationship=true&lt;/strong&gt; only.&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Use the migration script (&lt;strong&gt;056_migrate_project_dependency_network.py&lt;/strong&gt;) we provided to mograte the database.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Before you run the script, please change two places in the script:&lt;/p&gt;
&lt;p&gt;(1) Line 30: &lt;code&gt;DRY_RUN = True&lt;/code&gt; -&amp;gt; &lt;code&gt;DRY_RUN = False&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(2) Line 32: &lt;code&gt;COUCHSERVER = 'http://localhost:5984/'&lt;/code&gt; -&amp;gt; &lt;code&gt;COUCHSERVER = 'http://admin:password@localhost:5984/'&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Export and Import</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-export-and-import/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-export-and-import/</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-diff" data-lang="diff"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="background-color:#fcc"&gt;- note that only export and import of users is active,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="background-color:#fcc"&gt;- everything else is deprecated functionality.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="background-color:#fcc"&gt;- The export and import functionality has not been
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="background-color:#fcc"&gt;- updated at some point and thus will not function
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="background-color:#fcc"&gt;- properly anymore.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="full-export"&gt;Full Export&lt;/h1&gt;
&lt;p&gt;The easiest way to fully export the data is to copy all the .couch files of Couch-DB. Where the files are can be found out from Futon.
e.g.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http://localhost:5984/_utils/config.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;under&lt;/p&gt;</description></item><item><title>Initial Setup of Liferay 6.2 and sw360</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-liferay/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-liferay/</guid><description>&lt;h3 id="liferay-administrator-steps"&gt;Liferay administrator steps&lt;/h3&gt;
&lt;p&gt;This part describes how to setup a new liferay instance after you went through the initial Liferay setup: create an admin account, confirm the license and terms and fill out your personal details. Alternatively in the &lt;a href="https://github.com/sw360/sw360vagrant"&gt;sw360vagrant&lt;/a&gt; or the &lt;a href="https://github.com/sw360/sw360chores"&gt;sw360chores&lt;/a&gt; deployment, the default setup user credentials are &lt;code&gt;setup@sw360.org&lt;/code&gt; with the unsafe password &lt;code&gt;sw360fossy&lt;/code&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Login as setup administrator (if you are using the default unsafe password, you should replace it on productive instances)&lt;/p&gt;</description></item><item><title>Initial Setup of Liferay 7.2 and sw360</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-liferay7/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-liferay7/</guid><description>&lt;h2 id="starting-sw360-for-the-first-time"&gt;Starting SW360 for the First Time&lt;/h2&gt;
&lt;p&gt;So, the vagrant setup has deployed sw360, but unfortunately, there is some major issue: With Liferay, certain configuration need to be applied manually in the UI. If you would know how to import *.lar files and apply some setting from the command line (without implementing an approach based on HTML testing frameworks, like selenium), please let us know.&lt;/p&gt;
&lt;p&gt;Until then, some tasks need to be done manually, after everything has been built up:&lt;/p&gt;</description></item><item><title>Initial Setup of Liferay 7.3 and sw360</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-liferay7.3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-liferay7.3/</guid><description>&lt;p&gt;After successful installation, the vagrant ends like the following terminal output:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/deploy73/2020-08-13_20.07.32.png"&gt;
&lt;/figure&gt;

&lt;p&gt;Then if you open the server with the URL &lt;code&gt;https://localhost:8443/&lt;/code&gt; the following screen should appear:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/deploy73/2020-08-13_20.09.12.png"&gt;
&lt;/figure&gt;

&lt;p&gt;Note that the actual image changes with every liferay version. If there is weird html output without images and plain text, then likely some port settings did not work and the pages generated have wrong URLs inside.&lt;/p&gt;
&lt;p&gt;Sign in_the icon_the upper left corner. If you did not change the values in &lt;code&gt;configuration.rb&lt;/code&gt;the default login is &lt;code&gt;setup@sw360.org&lt;/code&gt; and &lt;code&gt;sw360fossy&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Liferay 7.3 and Java 11</title><link>https://eclipse.dev/sw360/docs/deployment/upgrading/deploy-upgrade-to-liferay-7.3-and-java-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/upgrading/deploy-upgrade-to-liferay-7.3-and-java-11/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;We are covering the update for ubuntu here, because that is our main / agreed base system for running sw360. sw360 may run on a varienty of other linux distributions or OSes such as macosx, but in order to avoid problem we agreed on having a reference OS, which are the ubuntu long term releases.&lt;/p&gt;
&lt;p&gt;With the update to Java 11, we upgraded from Ubuntu 16.04 to Ubuntu 18.04, both LTS version. This OS is used for example by the &lt;a href="https://github.com/sw360/sw360vagrant"&gt;https://github.com/sw360/sw360vagrant&lt;/a&gt; project.&lt;/p&gt;</description></item><item><title>Native Install v14 and v16</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/nativeinstall/native-install-sw360-version-14.0.0-and-16.0.0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/nativeinstall/native-install-sw360-version-14.0.0-and-16.0.0/</guid><description>&lt;h1 id="how-to-install-and-run-sw360-v1600"&gt;How to install and run SW360 v16.0.0&lt;/h1&gt;
&lt;p&gt;These instructions worked on Ubuntu 20.04 and has detailed explanations for newcomers.&lt;/p&gt;
&lt;p&gt;This is a guide with detailed explanation of how to install and run SW360 natively on you local machine.
It includes installation of all dependencies manually, which will not use docker or other container system during the installation or run.&lt;/p&gt;
&lt;p&gt;SW360 is an Open Source project. The &lt;a href="https://www.eclipse.org/sw360/docs/"&gt;SW360&lt;/a&gt; repository and &lt;a href="https://github.com/eclipse/sw360.website"&gt;SW360 website&lt;/a&gt; repositories are published on GitHub.&lt;/p&gt;</description></item><item><title>Native Install v17</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/nativeinstall/native-install-sw360-version-17.0.0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/nativeinstall/native-install-sw360-version-17.0.0/</guid><description>&lt;h1 id="how-to-install-and-run-sw360-v1700"&gt;How to install and run SW360 v17.0.0&lt;/h1&gt;
&lt;p&gt;These instructions worked on Ubuntu 20.04 and has detailed explanations for newcomers.&lt;/p&gt;
&lt;p&gt;This is a guide with detailed explanation of how to install and run SW360 natively on you local machine.
It includes installation of all dependencies manually, which will not use docker or other container system during the installation or run.&lt;/p&gt;
&lt;p&gt;SW360 is an Open Source project. The &lt;a href="https://www.eclipse.org/sw360/docs/"&gt;SW360&lt;/a&gt; repository and &lt;a href="https://github.com/eclipse/sw360.website"&gt;SW360 website&lt;/a&gt; repositories are published on GitHub.&lt;/p&gt;</description></item><item><title>Native Install v18.1</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/nativeinstall/native-install-sw360-version-18.1.0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/nativeinstall/native-install-sw360-version-18.1.0/</guid><description>&lt;h1 id="how-to-install-and-run-sw360-v1810"&gt;How to install and run SW360 v18.1.0&lt;/h1&gt;
&lt;p&gt;These instructions worked on Ubuntu 20.04 and has detailed explanations for newcomers.&lt;/p&gt;
&lt;p&gt;This is a guide with detailed explanation of how to install and run SW360 natively on you local machine.
It includes installation of all dependencies manually, which will not use docker or other container system during the installation or run.&lt;/p&gt;
&lt;p&gt;SW360 is an Open Source project. The &lt;a href="https://www.eclipse.org/sw360/docs/"&gt;SW360&lt;/a&gt; repository and &lt;a href="https://github.com/eclipse/sw360.website"&gt;SW360 website&lt;/a&gt; repositories are published on GitHub.&lt;/p&gt;</description></item><item><title>SPDX Document</title><link>https://eclipse.dev/sw360/docs/userguide/spdx_document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/spdx_document/</guid><description>&lt;h2 id="how-to-enable-this-feature"&gt;How to enable this feature&lt;/h2&gt;
&lt;p&gt;To use this function, please:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Build the source code and deploy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add config &lt;strong&gt;spdx.document.enabled = true&lt;/strong&gt; (/etc/sw360/sw360.properties) to enable the feature.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The following changes will work when &lt;strong&gt;spdx.document.enabled = true&lt;/strong&gt; only.&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;SPDX Document manages Document Creation Information, Package Information, Other Licensing Information Detected, Relationships between SPDX Elements, Annotations&lt;/p&gt;
&lt;h2 id="how-to-use"&gt;How to use?&lt;/h2&gt;
&lt;h3 id="file-test-import"&gt;File Test Import&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/spdx/tools-java/blob/master/testResources/SPDXRdfExample-v2.3.spdx.rdf"&gt;https://github.com/spdx/tools-java/blob/master/testResources/SPDXRdfExample-v2.3.spdx.rdf&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="import-spdx-in-page-component"&gt;Import SPDX in Page Component&lt;/h3&gt;
&lt;h4 id="import"&gt;Import&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Support RDF/XML, SPDX.&lt;/li&gt;
&lt;li&gt;Import all Packages in the SPDX file (main package and dependent packages)&lt;/li&gt;
&lt;li&gt;Import relationships related to Packages and SPDX Documents (relationships related to File and Snippet are not imported)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="steps"&gt;Steps&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go to component page&lt;/li&gt;
&lt;li&gt;Click &amp;ldquo;Import SPDX BOM&amp;rdquo; button&lt;/li&gt;
&lt;li&gt;Upload SPDXRdfExample-v2.3.spdx.rdf&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="validate"&gt;Validate&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Apache Commons Lang&amp;rdquo;, &amp;ldquo;glibc&amp;rdquo;, &amp;ldquo;Jena&amp;rdquo; and &amp;ldquo;Saxon&amp;rdquo; components were created&lt;/li&gt;
&lt;li&gt;&amp;ldquo;glibc (2.11.1)&amp;rdquo;, &amp;ldquo;Saxon(8.8)&amp;rdquo; and &amp;quot; Jena (3.12.0) &amp;quot; releases were created&lt;/li&gt;
&lt;li&gt;Tab SPDX Document exits in release glibc (2.11.1), Jena (3.12.0) and Saxon (8.8)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="result"&gt;Result&lt;/h4&gt;
&lt;h5 id="tab-spdx-document---full-page-of-release-glibc2111"&gt;Tab SPDX Document - Full Page of Release Glibc(2.11.1)&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Full_Page_of_Release_Glibc.png"&gt;
&lt;/figure&gt;

&lt;h5 id="tab-spdx-document---lite-page-of-release-glibc2111"&gt;Tab SPDX Document - Lite Page of Release Glibc(2.11.1)&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Lite_Page_of_Release_Glibc%282.11.1%29.png"&gt;
&lt;/figure&gt;

&lt;h5 id="tab-spdx-document----full-page-of-release-jena-3120"&gt;Tab SPDX Document - Full Page of Release Jena (3.12.0)&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Full_Page_of_Release_Jena_%283.12.0%29.png"&gt;
&lt;/figure&gt;

&lt;h5 id="tab-spdx-document---lite-page-of-release--jena-3120"&gt;Tab SPDX Document - Lite Page of Release Jena (3.12.0)&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Lite_Page_of_Release_Jena_%283.12.0%29.png"&gt;
&lt;/figure&gt;

&lt;h5 id="tab-spdx-document----full-page-of-release-saxon-88"&gt;Tab SPDX Document - Full Page of Release Saxon (8.8)&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Full_Page_of_Release_Saxon_%288.8%29.png"&gt;
&lt;/figure&gt;

&lt;h5 id="tab-spdx-document---lite-page-of-release--saxon-88"&gt;Tab SPDX Document - Lite Page of Release Saxon (8.8)&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Lite_Page_of_Release_Saxon_%288.8%29.png"&gt;
&lt;/figure&gt;

&lt;h3 id="feature-edit-add-tab-spdx-document-in-release"&gt;Feature: Edit, Add tab SPDX Document in Release&lt;/h3&gt;
&lt;h5 id="edit-tab-spdx-document---full-page"&gt;Edit tab SPDX Document - Full Page&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Edit_tab_SPDX_Document_Full_Page.png"&gt;
&lt;/figure&gt;

&lt;h5 id="edit-tab-spdx-document---lite-page"&gt;Edit tab SPDX Document - Lite Page&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Edit_tab_SPDX_Document_Lite_Page.png"&gt;
&lt;/figure&gt;

&lt;h5 id="add-tab-spdx-document"&gt;Add tab SPDX Document&lt;/h5&gt;
&lt;figure&gt;&lt;img src="https://eclipse.dev/sw360/img/sw360screenshots/spdx_document/Add_tab_SPDX_Document.png"&gt;
&lt;/figure&gt;</description></item><item><title>Ubuntu 18.04 LTS, Java 11</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-natively-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-natively-11/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;We are covering the update for Ubuntu 18.04 LTS here because it is our main and agreed-upon base system for running SW360. While SW360 may run on a variety of other Linux distributions or operating systems such as macOS, we have agreed to use Ubuntu Long-Term Releases as a reference OS to avoid compatibility issues. The author of this guide also uses macOS with Homebrew, which works fairly well.&lt;/p&gt;</description></item><item><title>Upgrade Sw360 from 14.0 to 15.0</title><link>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade-sw360-from-14.0.0-to-15.0.0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade-sw360-from-14.0.0-to-15.0.0/</guid><description>&lt;h1 id="upgrade-sw360-version-150"&gt;Upgrade SW360 version 15.0&lt;/h1&gt;
&lt;h2 id="1-upgrade-sw360-from-140-to-150"&gt;1. Upgrade sw360 from 14.0 to 15.0&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.1 Checkout source code SW360 to Tag Version 15
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.2 Version of libraries
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.3 Migrate database
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.4 Build and deploy Sw360 Version 15.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="11-checkout-source-code-sw360-to-tag-version-15"&gt;1.1 Checkout source code SW360 to Tag Version 15&lt;/h3&gt;
&lt;p&gt;Link contains source: &lt;a href="https://github.com/eclipse/sw360.git"&gt;https://github.com/eclipse/sw360.git&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Path &lt;code&gt;SW360_REPOSITORY&lt;/code&gt; = &lt;code&gt;/home/user/work/sw360&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Source code sw360 is in master branch with commit version 14.0 . User into &lt;code&gt;${SW360_REPOSITORY}&lt;/code&gt; use git checkout to tag version 15 on the master branch of SW360&lt;/p&gt;</description></item><item><title>Upgrade Sw360 from 15.0 to 16.0</title><link>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_15_to_16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_15_to_16/</guid><description>&lt;h1 id="upgrade-sw360-version-160"&gt;Upgrade SW360 version 16.0&lt;/h1&gt;
&lt;h2 id="1-upgrade-sw360-from-150-to-160"&gt;1. Upgrade sw360 from 15.0 to 16.0&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.1 Checkout source code SW360 to Tag Version 16
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.2 Version of libraries
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.3 Migrate database
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.4 Build and deploy Sw360 Version 16
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1.5 Start and Configure Liferay 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="11-create-folder-contains-source-code-sw360-to-tag-version-16"&gt;1.1 Create Folder contains source code SW360 to Tag Version 16&lt;/h3&gt;
&lt;p&gt;Link contains source: &lt;a href="https://github.com/eclipse/sw360.git"&gt;https://github.com/eclipse/sw360.git&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Path &lt;code&gt;SW360_REPOSITORY&lt;/code&gt; = &lt;code&gt;/home/user/work15to16/sw360&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Source code sw360 is in main branch with commit version 14.0 . User into &lt;code&gt;${SW360_REPOSITORY}&lt;/code&gt; use git checkout to tag version 16 on the main branch of SW360&lt;/p&gt;</description></item><item><title>Upgrade SW360 from 16.0 to 17.0</title><link>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_16_to_17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_16_to_17/</guid><description>&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_16_to_17/#ref1"&gt;Checkout source code SW360 to Tag Version 17&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_16_to_17/#ref2"&gt;Version of libraries&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_16_to_17/#ref3"&gt;Migrate Database&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_16_to_17/#ref4"&gt;Build and deploy SW360 Version 17&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_16_to_17/#ref5"&gt;Start and Configure Liferay&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="ref1"&gt;Prepare source code to use release 17&lt;/h2&gt;
&lt;p&gt;Link contains source: &lt;a href="https://github.com/eclipse/sw360.git"&gt;https://github.com/eclipse/sw360.git&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Path &lt;code&gt;SW360_REPOSITORY&lt;/code&gt; = &lt;code&gt;/home/user/work16to17/sw360&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Source code sw360 is in main branch with commit version 16.0.0 . User into &lt;code&gt;${SW360_REPOSITORY}&lt;/code&gt; use git checkout to tag version 16 on the main branch of SW360&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Checkout to tag Version 17.0.0&lt;/p&gt;</description></item><item><title>Upgrade SW360 from 17.00 to 18.1.0</title><link>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_17_to_18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_17_to_18/</guid><description>&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_17_to_18/#ref1"&gt;Version of libraries&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_17_to_18/#ref2"&gt;Checkout source code SW360 to Tag Version 18.1.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_17_to_18/#ref3"&gt;Config Couchdb Lucene&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_17_to_18/#ref4"&gt;Build and deploy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_17_to_18/#ref5"&gt;Start and Configure Liferay&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eclipse.dev/sw360/docs/deployment/upgrading/upgrade_version_sw360_17_to_18/#ref6"&gt;Setup SW360 for Liferay: Import *.lar Files&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="ref1"&gt;Version of libraries&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;Package Name&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Version&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Liferay&lt;/td&gt;
 &lt;td style="text-align: center"&gt;7.4.3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Tomcat&lt;/td&gt;
 &lt;td style="text-align: center"&gt;9.0.56&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Couchdb&lt;/td&gt;
 &lt;td style="text-align: center"&gt;3.2.2&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Open JDK&lt;/td&gt;
 &lt;td style="text-align: center"&gt;11.0.15&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Thrift&lt;/td&gt;
 &lt;td style="text-align: center"&gt;0.16.0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;To check couchdb version: run &lt;code&gt;curl http://localhost_or_yourcouchdbserver:5984 | json_pp&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="ref2"&gt;Prepare source code to use release 18.1.0&lt;/h2&gt;
&lt;p&gt;Link contains source: &lt;a href="https://github.com/eclipse/sw360.git"&gt;https://github.com/eclipse/sw360.git&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Create folder to store new source code of version 18.1.0:&lt;/p&gt;</description></item><item><title>Version 20.x on Debian 12</title><link>https://eclipse.dev/sw360/docs/deployment/baremetal/deploy-20-natively/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/baremetal/deploy-20-natively/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;We are covering the installation for Debian based Linux distros. sw360 may run
on a variety of other linux distributions or OSes such as Mac OSX (amd64 only).&lt;/p&gt;
&lt;p&gt;This is a guide with detailed explanation of how to install and run SW360
natively on you local machine. It includes installation of all dependencies
manually, and will not use docker or other container system during the
installation or run.&lt;/p&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;The installation consists of quite some tasks, as an overview:&lt;/p&gt;</description></item><item><title>Version 19.x on Debian 12</title><link>https://eclipse.dev/sw360/docs/deployment/baremetal/deploy-19-natively/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/baremetal/deploy-19-natively/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;We are covering the installation for Debian based Linux distros. sw360 may run
on a variety of other linux distributions or OSes such as Mac OSX (amd64 only).&lt;/p&gt;
&lt;p&gt;This is a guide with detailed explanation of how to install and run SW360
natively on you local machine. It includes installation of all dependencies
manually, and will not use docker or other container system during the
installation or run.&lt;/p&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;The installation consists of quite some tasks, as an overview:&lt;/p&gt;</description></item><item><title>Legacy (v18.x) on Ubuntu / Debian</title><link>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-natively/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/legacy/deploy-natively/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;We are covering the update for Debian based Linux distros, because that is our main / agreed base system for running sw360. sw360 may run on a variety of other linux distributions or OSes such as Mac OSX (amd64 only).&lt;/p&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;p&gt;The installation consists of quite some tasks, as an overview:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Java 11&lt;/li&gt;
&lt;li&gt;Postgresql &amp;gt;= 15.x&lt;/li&gt;
&lt;li&gt;CouchDB &amp;gt;= 3.2.x&lt;/li&gt;
&lt;li&gt;Thrift 0.18.1&lt;/li&gt;
&lt;li&gt;Liferay CE 7.4.3 GA18&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="initial-steps"&gt;Initial steps&lt;/h2&gt;
&lt;p&gt;In order to &amp;ldquo;calibrate the system&amp;rdquo; just run the update / upgrade cycle once:&lt;/p&gt;</description></item><item><title>CVE Scheduler</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-cve-search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-cve-search/</guid><description>&lt;h1 id="how-to-use-sw360-cve-schedule"&gt;How to use SW360 CVE schedule&lt;/h1&gt;
&lt;p&gt;SW360 gets vulnerability information from Common Vulnerability Enumeration (CVE) data. SW360 can connect to your local cve-search server.&lt;br&gt;
&lt;em&gt;Few years ago, sw360 was able to get vulnerability information from online CVE serverr, but it is not active.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="install-cve-search"&gt;Install CVE-search&lt;/h2&gt;
&lt;p&gt;cve-search is a tool to import CVE (Common Vulnerabilities and Exposures) and CPE (Common Platform Enumeration) into a MongoDB to facilitate search and processing of CVEs. You can choose Docker install or Native install.&lt;/p&gt;</description></item><item><title>Edit Release</title><link>https://eclipse.dev/sw360/docs/development/completiontests/release-edit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/release-edit/</guid><description>&lt;h2 id="sw360-edit-release-page-test-cases"&gt;SW360 &amp;ldquo;Edit Release&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="release-summary-section"&gt;Release Summary Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Release Summary&amp;rdquo; section in the Summary Tab, which is the same as the &amp;ldquo;Add Releases&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Summary&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the form:
&lt;ul&gt;
&lt;li&gt;Vendor (set the default value if Component has default vendor set) (clear button beneath)&lt;/li&gt;
&lt;li&gt;Name (required, readonly with component name)&lt;/li&gt;
&lt;li&gt;Version (required)&lt;/li&gt;
&lt;li&gt;Programming Languages (type to get default values, multivalue)&lt;/li&gt;
&lt;li&gt;Operating Systems (type to get default values, multivalue)&lt;/li&gt;
&lt;li&gt;CPE ID (hover info beneath)&lt;/li&gt;
&lt;li&gt;Software Platforms (type to get default values, multivalue)&lt;/li&gt;
&lt;li&gt;Release date&lt;/li&gt;
&lt;li&gt;Main Licenses (multivalue)&lt;/li&gt;
&lt;li&gt;Other licenses (multivalue)&lt;/li&gt;
&lt;li&gt;Source Code Download URL&lt;/li&gt;
&lt;li&gt;Binary Download URL&lt;/li&gt;
&lt;li&gt;Clearing State (New, readonly)&lt;/li&gt;
&lt;li&gt;Release Mainline State (dropdown, with info hover beneath)&lt;/li&gt;
&lt;li&gt;Created On&lt;/li&gt;
&lt;li&gt;Created By&lt;/li&gt;
&lt;li&gt;Contributors (multivalue)&lt;/li&gt;
&lt;li&gt;Moderators (multivalue)&lt;/li&gt;
&lt;li&gt;Modified On&lt;/li&gt;
&lt;li&gt;Modified By&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-roles-section"&gt;Additional Roles Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Roles&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Roles&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional roles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="external-ids-section"&gt;External IDs Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;External IDs&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;External IDs&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to External Ids&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the new row:
&lt;ul&gt;
&lt;li&gt;External Id key on the left&lt;/li&gt;
&lt;li&gt;Type to get default values&lt;/li&gt;
&lt;li&gt;External Id value on the right&lt;/li&gt;
&lt;li&gt;Row delete button on the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="additional-data-section"&gt;Additional Data Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Additional Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Additional Data&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add row to Additional Data&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A new row is added for additional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="release-repository-section"&gt;Release Repository Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Release Repository&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Repository&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Repository Type (dropdown)&lt;/li&gt;
&lt;li&gt;Repository URL (textbox)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-releases-tab"&gt;Linked Releases Tab&lt;/h3&gt;
&lt;h4 id="click-to-add-releases-button"&gt;Click to Add Releases Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Click to add Releases&amp;rdquo; button and the releases table in the Linked Releases Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Releases Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Click to add Releases&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Vendor name&lt;/li&gt;
&lt;li&gt;Release name&lt;/li&gt;
&lt;li&gt;Release version&lt;/li&gt;
&lt;li&gt;Release relation (info hover) (dropdown)&lt;/li&gt;
&lt;li&gt;delete icon&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The button and table with the specified columns are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-packages-tab"&gt;Linked Packages Tab&lt;/h3&gt;
&lt;h4 id="add-packages-button"&gt;Add Packages Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Add Packages&amp;rdquo; button and the table in the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Packages&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Package Name&lt;/li&gt;
&lt;li&gt;Package Version&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;li&gt;Package Manager&lt;/li&gt;
&lt;li&gt;delete icon&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The button and table with the specified columns are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="clearing-details-tab"&gt;Clearing Details Tab&lt;/h3&gt;
&lt;h4 id="clearing-details-section"&gt;Clearing Details Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Clearing Details&amp;rdquo; section in the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;13 checkboxes&lt;/li&gt;
&lt;li&gt;Scanned text box&lt;/li&gt;
&lt;li&gt;Clearing Standard text box&lt;/li&gt;
&lt;li&gt;External URL text box&lt;/li&gt;
&lt;li&gt;Comments text box&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="request-information-section"&gt;Request Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Request Information&amp;rdquo; section in the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Request ID&lt;/li&gt;
&lt;li&gt;Additional request Info&lt;/li&gt;
&lt;li&gt;Evaluation Start&lt;/li&gt;
&lt;li&gt;Evaluation End&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="supplemental-information-section"&gt;Supplemental Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Supplemental Information&amp;rdquo; section in the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;External Supplier ID&lt;/li&gt;
&lt;li&gt;Count of Security Vulnerabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ecc-details-tab"&gt;ECC Details Tab&lt;/h3&gt;
&lt;h4 id="ecc-information-section"&gt;ECC Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; EDIT-REL-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;ECC Information&amp;rdquo; section in the ECC Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the ECC Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;ECC Status (dropdown) (info hover beneath)&lt;/li&gt;
&lt;li&gt;ECC Comment&lt;/li&gt;
&lt;li&gt;Ausfuhrliste&lt;/li&gt;
&lt;li&gt;ECCN&lt;/li&gt;
&lt;li&gt;Material Index Number&lt;/li&gt;
&lt;li&gt;Assessor Contact Person (readonly)&lt;/li&gt;
&lt;li&gt;Assessor Department (readonly)&lt;/li&gt;
&lt;li&gt;Assessment Date (readonly)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="attachments-tab"&gt;Attachments Tab&lt;/h3&gt;
&lt;h4 id="attachments-table"&gt;Attachments Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-edit/#attachments-table"&gt;PROJ-EDIT-013&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Release Details</title><link>https://eclipse.dev/sw360/docs/development/completiontests/release-details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/release-details/</guid><description>&lt;h2 id="sw360-release-details-page-test-cases"&gt;SW360 &amp;ldquo;Release Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="dropdown-button-for-release-version"&gt;Dropdown Button for Release Version&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the dropdown button showing the release version, which opens to show other versions. The button has a Red or Green indicator on the left indicating the Clearing State (Report approved: Green, otherwise red).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the dropdown button for the release version.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The dropdown button is present with the specified behavior and indicator.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Edit Release&amp;rdquo;, &amp;ldquo;Link to Project&amp;rdquo;, &amp;ldquo;merge&amp;rdquo;, and &amp;ldquo;Subscribe&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="general-section"&gt;General Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;General&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;General&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Release ID&lt;/li&gt;
&lt;li&gt;CPE ID&lt;/li&gt;
&lt;li&gt;Release Date of this Release&lt;/li&gt;
&lt;li&gt;Created on&lt;/li&gt;
&lt;li&gt;Created By&lt;/li&gt;
&lt;li&gt;Modified On&lt;/li&gt;
&lt;li&gt;Modified By&lt;/li&gt;
&lt;li&gt;Contributors&lt;/li&gt;
&lt;li&gt;Moderators&lt;/li&gt;
&lt;li&gt;Subscribers&lt;/li&gt;
&lt;li&gt;Additional Roles&lt;/li&gt;
&lt;li&gt;Source Code Download URL&lt;/li&gt;
&lt;li&gt;Binary Download URL&lt;/li&gt;
&lt;li&gt;Clearing State&lt;/li&gt;
&lt;li&gt;Release Mainline State&lt;/li&gt;
&lt;li&gt;Main licenses (i button next to license name, click to show src file for this license, fail if multiple files)&lt;/li&gt;
&lt;li&gt;Other licenses (i button next to license name)&lt;/li&gt;
&lt;li&gt;Programming Languages&lt;/li&gt;
&lt;li&gt;Operating Systems&lt;/li&gt;
&lt;li&gt;External ids&lt;/li&gt;
&lt;li&gt;Additional Data&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="release-repository-section"&gt;Release Repository Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Release Repository&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Repository&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Repository:&amp;rdquo; link of the repository&lt;/li&gt;
&lt;li&gt;Repository type in brackets&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="release-vendor-section"&gt;Release Vendor Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Release Vendor&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Vendor&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;FullName&lt;/li&gt;
&lt;li&gt;Short Name&lt;/li&gt;
&lt;li&gt;URL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="used-by-section"&gt;Used By Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Used By&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Used By&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Release name&lt;/li&gt;
&lt;li&gt;Used by total of visible / restricted projects&lt;/li&gt;
&lt;li&gt;Table of visible projects with columns: Project name (click to open project), Group, Responsible&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If the release is a linked release in another release, verify the presence of the table &amp;ldquo;Release is used by the following components&amp;rdquo; with columns: Vendor, Name (click to open Component), Main licenses, Component Type&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields and tables are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-releases-tab"&gt;Linked Releases Tab&lt;/h3&gt;
&lt;h4 id="table-of-linked-releases"&gt;Table of Linked Releases&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the table of linked releases in the Linked Releases Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Releases Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Name (click to open release)&lt;/li&gt;
&lt;li&gt;Release relation&lt;/li&gt;
&lt;li&gt;License Names&lt;/li&gt;
&lt;li&gt;Clearing State&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-packages-tab"&gt;Linked Packages Tab&lt;/h3&gt;
&lt;h4 id="table-of-linked-packages"&gt;Table of Linked Packages&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the table of linked packages in the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Packages Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Vendor (filterable)&lt;/li&gt;
&lt;li&gt;Package Name version (filterable)&lt;/li&gt;
&lt;li&gt;Licenses (filterable)&lt;/li&gt;
&lt;li&gt;Package Manager (filterable)&lt;/li&gt;
&lt;li&gt;Actions (edit package and delete package)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="clearing-details-tab"&gt;Clearing Details Tab&lt;/h3&gt;
&lt;h4 id="spdx-attachments-section"&gt;SPDX Attachments Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;SPDX Attachments&amp;rdquo; section in the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields for each CLI report:
&lt;ul&gt;
&lt;li&gt;First column displays filename&lt;/li&gt;
&lt;li&gt;Second column shows &amp;ldquo;Show License Info&amp;rdquo; button&lt;/li&gt;
&lt;li&gt;On click on &amp;ldquo;Show License Info&amp;rdquo; button, verify that it changes to &amp;ldquo;Add data to this release&amp;rdquo; button and displays &amp;ldquo;Main / Concluded License Ids:&amp;rdquo; and &amp;ldquo;Other License Ids:&amp;rdquo; as UL in the third column &amp;ldquo;Result&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields and behavior are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="assessment-summary-info-section"&gt;Assessment Summary Info Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Assessment Summary Info&amp;rdquo; section in the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Show Assessment Summary Info&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the &lt;code&gt;AssessmentSummary&lt;/code&gt; section from the CLIXML file of the approved attachment.&lt;/li&gt;
&lt;li&gt;If multiple accepted CLI are found, verify that &amp;ldquo;Multiple approved CLI are found in release!&amp;rdquo; is displayed.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields and behavior are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="clearing-details-release-section"&gt;Clearing Details: Release Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Clearing Details: Release&amp;rdquo; section in the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Clearing State (fossology button next to it)&lt;/li&gt;
&lt;li&gt;The 13 checkboxes with Red (No) or Green (Yes) state&lt;/li&gt;
&lt;li&gt;The text boxes values&lt;/li&gt;
&lt;li&gt;External URL as clickable link&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="request-information-section"&gt;Request Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Request Information&amp;rdquo; section in the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Request ID&lt;/li&gt;
&lt;li&gt;Additional Request Information&lt;/li&gt;
&lt;li&gt;Evaluation Start&lt;/li&gt;
&lt;li&gt;Evaluation End&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="supplemental-information-section"&gt;Supplemental Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;Supplemental Information&amp;rdquo; section in the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;External Supplier ID&lt;/li&gt;
&lt;li&gt;Number of Security Vulnerabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ecc-details-tab"&gt;ECC Details Tab&lt;/h3&gt;
&lt;h4 id="ecc-information-section"&gt;ECC Information Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REL-DTL-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the &amp;ldquo;ECC Information&amp;rdquo; section in the ECC Details Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the ECC Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;ECC Status&lt;/li&gt;
&lt;li&gt;AL&lt;/li&gt;
&lt;li&gt;ECCN&lt;/li&gt;
&lt;li&gt;Material Index Number&lt;/li&gt;
&lt;li&gt;ECC Comment&lt;/li&gt;
&lt;li&gt;Assessor Contact Person&lt;/li&gt;
&lt;li&gt;Assessor Department&lt;/li&gt;
&lt;li&gt;Assessment Date&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="attachments-tab"&gt;Attachments Tab&lt;/h3&gt;
&lt;h4 id="attachments-table"&gt;Attachments Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#attachments-table"&gt;PROJ-DTL-016&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerabilities-tab"&gt;Vulnerabilities Tab&lt;/h3&gt;
&lt;h4 id="vulnerabilities-table"&gt;Vulnerabilities Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/components-details/#tab-name-and-count"&gt;COMP-DTL-010&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/components-details/#total-vulnerabilities"&gt;COMP-DTL-011&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/components-details/#vulnerabilities-table"&gt;COMP-DTL-012&lt;/a&gt; and
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/components-details/#changing-vulnerability-state"&gt;COMP-DTL-013&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="change-log-tab"&gt;Change Log Tab&lt;/h3&gt;
&lt;h4 id="change-log-table"&gt;Change Log Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#toggle-on-top"&gt;PROJ-DTL-021&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#changelog-table"&gt;PROJ-DTL-022&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#opening-changelog"&gt;PROJ-DTL-023&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#basic-info-section"&gt;PROJ-DTL-024&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#changed-fields-table"&gt;PROJ-DTL-025&lt;/a&gt; and
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#returning-to-list"&gt;PROJ-DTL-026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Merge Components</title><link>https://eclipse.dev/sw360/docs/development/completiontests/components-merge/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/components-merge/</guid><description>&lt;h2 id="sw360-merge-components-page-test-cases"&gt;SW360 &amp;ldquo;Merge Components&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="accessing-the-merge-components-page"&gt;Accessing the Merge Components Page&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the merge components page can be reached by clicking the &amp;ldquo;Merge&amp;rdquo; button on a component. The component from which the button was clicked is called the Target component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page of a component.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Merge&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The merge components page is opened with the Target component specified.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="choose-source-section"&gt;Choose Source Section&lt;/h3&gt;
&lt;h4 id="source-components-table"&gt;Source Components Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the table with all components except the Target component, with a search bar on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Choose source&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Component Name&lt;/li&gt;
&lt;li&gt;Created by&lt;/li&gt;
&lt;li&gt;Releases (count)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the search bar is functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="selecting-a-source-component"&gt;Selecting a Source Component&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of choosing one source component and clicking &amp;ldquo;Next.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Choose source&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Select a source component from the table.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The selected source component is chosen, and the page navigates to the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="merge-data-section"&gt;Merge Data Section&lt;/h3&gt;
&lt;h4 id="display-of-data"&gt;Display of Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of all data from the Target component on the left and the Source component on the right with a &lt;code&gt;&amp;lt;=&lt;/code&gt; button in between.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The data from the Target component is displayed on the left, and the Source component data is displayed on the right with a &lt;code&gt;&amp;lt;=&lt;/code&gt; button in between.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="data-carry-forward"&gt;Data Carry Forward&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the data on the left will be carried forward to the Target component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The data on the left is carried forward to the Target component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="created-by-info-hover"&gt;Created by Info Hover&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of an info hover for the &amp;ldquo;Created by&amp;rdquo; field.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Hover over the &amp;ldquo;Created by&amp;rdquo; field.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The info hover is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-button-action"&gt;&lt;code&gt;&amp;lt;=&lt;/code&gt; Button Action&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the action of pressing the &lt;code&gt;&amp;lt;=&lt;/code&gt; button.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Press the &lt;code&gt;&amp;lt;=&lt;/code&gt; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The action can be undone with the undo button.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="conflict-releases"&gt;Conflict Releases&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the behavior of releases with the same version.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Press the &lt;code&gt;&amp;lt;=&lt;/code&gt; button on releases with the same version.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The undo button is disabled, and a conflict is indicated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="finalizing-data"&gt;Finalizing Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of finalizing data and clicking &amp;ldquo;Next.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Finalize the data.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates to the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="going-back"&gt;Going Back&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the ability to click &amp;ldquo;Back&amp;rdquo; to go to the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button to go to the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Back&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates back to the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="confirm-section"&gt;Confirm Section&lt;/h3&gt;
&lt;h4 id="display-of-data-1"&gt;Display of Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that only the data on the left is displayed in the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Only the data on the left is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="merge-selection-payload"&gt;Merge Selection Payload&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that only the displayed data is sent as the merge selection payload.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Finish&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Only the displayed data is sent as the merge selection payload.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="submitting-the-merge"&gt;Submitting the Merge&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of clicking &amp;ldquo;Finish&amp;rdquo; to submit the merge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Finish&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The merge is submitted, and the user lands on the Component Details page of the Target component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="going-back-from-confirm-section"&gt;Going Back from Confirm Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-MRG-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the ability to click &amp;ldquo;Back&amp;rdquo; to go to the &amp;ldquo;Merge data&amp;rdquo; section from the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Components&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Back&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates back to the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Special Deployment Guides</title><link>https://eclipse.dev/sw360/docs/deployment/deploy-specialdeployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/deployment/deploy-specialdeployment/</guid><description>&lt;h3 id="general-deployment-guides"&gt;General Deployment Guides&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://qiita.com/K-Hama/items/1582b4e1bf248025eabb"&gt;Comprehensive blog post on SW360 Installation in Japanese&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Split Components</title><link>https://eclipse.dev/sw360/docs/development/completiontests/components-split/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/components-split/</guid><description>&lt;h2 id="sw360-split-component-page-test-cases"&gt;SW360 &amp;ldquo;Split Component&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="accessing-the-split-component-page"&gt;Accessing the Split Component Page&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the split component page can be reached by clicking the &amp;ldquo;Split&amp;rdquo; button on a component. The component from which the button was clicked is called the Source component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Component Details&amp;rdquo; page of a component.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Split&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The split component page is opened with the Source component specified.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="choose-target-section"&gt;Choose Target Section&lt;/h3&gt;
&lt;h4 id="target-components-table"&gt;Target Components Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the table with all components except the Source component, with a search bar on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Choose target&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Component Name&lt;/li&gt;
&lt;li&gt;Created by&lt;/li&gt;
&lt;li&gt;Releases (count)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the search bar is functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="selecting-a-target-component"&gt;Selecting a Target Component&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of choosing one target component and clicking &amp;ldquo;Next.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Choose target&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Select a target component from the table.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The selected target component is chosen, and the page navigates to the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="split-data-section"&gt;Split Data Section&lt;/h3&gt;
&lt;h4 id="display-of-data"&gt;Display of Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of all data from the Source component on the left and the Target component on the right with a &lt;code&gt;=&amp;gt;&lt;/code&gt; button in between for releases and attachments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The data from the Source component is displayed on the left, and the Target component data is displayed on the right with a &lt;code&gt;=&amp;gt;&lt;/code&gt; button in between for releases and attachments.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="data-carry-forward"&gt;Data Carry Forward&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the releases and attachments on the right will be carried forward to the Target component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The releases and attachments on the right are carried forward to the Target component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-button-action"&gt;&lt;code&gt;=&amp;gt;&lt;/code&gt; Button Action&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the action of pressing the &lt;code&gt;=&amp;gt;&lt;/code&gt; button.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Press the &lt;code&gt;=&amp;gt;&lt;/code&gt; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The action can be undone with the undo button.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="conflict-releases"&gt;Conflict Releases&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the behavior of releases with the same version.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Press the &lt;code&gt;=&amp;gt;&lt;/code&gt; button on releases with the same version.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The undo button is disabled, and a conflict is indicated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="finalizing-data"&gt;Finalizing Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of finalizing data and clicking &amp;ldquo;Next.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Finalize the data.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates to the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="going-back"&gt;Going Back&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the ability to click &amp;ldquo;Back&amp;rdquo; to go to the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button to go to the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Back&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates back to the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="confirm-section"&gt;Confirm Section&lt;/h3&gt;
&lt;h4 id="display-of-data-1"&gt;Display of Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the data in the &amp;ldquo;Confirm&amp;rdquo; section is similar to the &amp;ldquo;Split data&amp;rdquo; section without the buttons.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The data is displayed similarly to the &amp;ldquo;Split data&amp;rdquo; section without the buttons.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="submitting-the-split"&gt;Submitting the Split&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of clicking &amp;ldquo;Finalize&amp;rdquo; to submit the split.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Finalize&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The split is submitted, and the user lands on the Component Details page of the Source component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="going-back-from-confirm-section"&gt;Going Back from Confirm Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; COMP-SPLT-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the ability to click &amp;ldquo;Back&amp;rdquo; to go to the &amp;ldquo;Split data&amp;rdquo; section from the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Split Component&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Back&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates back to the &amp;ldquo;Split data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Merge Releases</title><link>https://eclipse.dev/sw360/docs/development/completiontests/release-merge/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/release-merge/</guid><description>&lt;h2 id="sw360-merge-release-page-test-cases"&gt;SW360 &amp;ldquo;Merge Release&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="accessing-the-merge-release-page"&gt;Accessing the Merge Release Page&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the merge releases page can be reached by clicking the &amp;ldquo;Merge&amp;rdquo; button on a release or the merge icon in the release tab of a component details page. The release from which the button was clicked is called the Target release.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Release Details&amp;rdquo; page of a release.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Merge&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The merge releases page is opened with the Target release specified.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="choose-source-section"&gt;Choose Source Section&lt;/h3&gt;
&lt;h4 id="source-releases-table"&gt;Source Releases Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the table with all releases of the component except the Target release, with a search bar on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Choose source&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Release Name&lt;/li&gt;
&lt;li&gt;Version&lt;/li&gt;
&lt;li&gt;Created by&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the search bar is functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="selecting-a-source-release"&gt;Selecting a Source Release&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of choosing one source release and clicking &amp;ldquo;Next.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Choose source&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Select a source release from the table.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The selected source release is chosen, and the page navigates to the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="merge-data-section"&gt;Merge Data Section&lt;/h3&gt;
&lt;h4 id="different-source-attachments"&gt;Different Source Attachments&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the message displayed if releases have different source attachments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the message: &amp;ldquo;Cannot continue to merge of releases: Both releases must have at least one pair of same source attachments or no source attachments at all. Otherwise a merge is not possible.&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified message is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="abort-button"&gt;Abort Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Abort&amp;rdquo; button on the bottom.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Abort&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates back to the release.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="same-source-attachment-or-no-attachment"&gt;Same Source Attachment or No Attachment&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the section &amp;ldquo;following documents will be effected&amp;rdquo; if releases have the same source attachment or no attachment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Count for projects&lt;/li&gt;
&lt;li&gt;Count for releases&lt;/li&gt;
&lt;li&gt;Count for vulnerabilities&lt;/li&gt;
&lt;li&gt;Count for attachment usage&lt;/li&gt;
&lt;li&gt;Count for project vulnerability ratings&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="display-of-data"&gt;Display of Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of all data from the Target release on the left and the Source release on the right with a &lt;code&gt;&amp;lt;=&lt;/code&gt; button in between.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The data from the Target release is displayed on the left, and the Source release data is displayed on the right with a &lt;code&gt;&amp;lt;=&lt;/code&gt; button in between.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="data-carry-forward"&gt;Data Carry Forward&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the data on the left will be carried forward to the Target release.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The data on the left is carried forward to the Target release.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="created-by-info-hover"&gt;Created by Info Hover&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of an info hover for the &amp;ldquo;Created by&amp;rdquo; field.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Hover over the &amp;ldquo;Created by&amp;rdquo; field.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The info hover is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="-button-action"&gt;&lt;code&gt;&amp;lt;=&lt;/code&gt; Button Action&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the action of pressing the &lt;code&gt;&amp;lt;=&lt;/code&gt; button.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Press the &lt;code&gt;&amp;lt;=&lt;/code&gt; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The action can be undone with the undo button.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="attachments"&gt;Attachments&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of attachments with name and attachment type in brackets. Matching source attachments section has an i icon. Other Attachments can be carried over.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The attachments are displayed with the specified details.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="finalizing-data"&gt;Finalizing Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of finalizing data and clicking &amp;ldquo;Next.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Finalize the data.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates to the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="going-back"&gt;Going Back&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the ability to click &amp;ldquo;Back&amp;rdquo; to go to the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Next&amp;rdquo; button to go to the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Back&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates back to the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="confirm-section"&gt;Confirm Section&lt;/h3&gt;
&lt;h4 id="display-of-data-1"&gt;Display of Data&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that only the data on the left is displayed in the &amp;ldquo;Confirm&amp;rdquo; section, and the effected notification is visible on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Only the data on the left is displayed, and the effected notification is visible on top.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="merge-selection-payload"&gt;Merge Selection Payload&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-015&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that only the displayed data is sent as the merge selection payload.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Finish&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Only the displayed data is sent as the merge selection payload.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="submitting-the-merge"&gt;Submitting the Merge&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-016&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the process of clicking &amp;ldquo;Finish&amp;rdquo; to submit the merge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Finish&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The merge is submitted, and the user lands on the Release Details page of the Target release.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="going-back-from-confirm-section"&gt;Going Back from Confirm Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MERGE-REL-017&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the ability to click &amp;ldquo;Back&amp;rdquo; to go to the &amp;ldquo;Merge data&amp;rdquo; section from the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Merge Release&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Confirm&amp;rdquo; section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Back&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page navigates back to the &amp;ldquo;Merge data&amp;rdquo; section.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Packages Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/packages-main/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/packages-main/</guid><description>&lt;h2 id="sw360-main-packages-page-test-cases"&gt;SW360 &amp;ldquo;Main Packages&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="advance-search-on-the-left-hand"&gt;Advance Search on the Left Hand&lt;/h3&gt;
&lt;h4 id="search-fields"&gt;Search Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the advance search on the left hand contains the specified search fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the advance search section on the left hand.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following search fields:
&lt;ul&gt;
&lt;li&gt;Package Name&lt;/li&gt;
&lt;li&gt;Package Version&lt;/li&gt;
&lt;li&gt;Package Manager (one of PackageManager thrift enum)&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;li&gt;Created by&lt;/li&gt;
&lt;li&gt;Created on (with filter type adding or removing date field)&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Orphan Package&amp;rdquo; checkbox&lt;/li&gt;
&lt;li&gt;A checkbox &amp;ldquo;Exact Match&amp;rdquo; with a Search button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified search fields are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="search-behavior"&gt;Search Behavior&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the search behavior based on the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the advance search section on the left hand.&lt;/li&gt;
&lt;li&gt;Enter search criteria in the search fields.&lt;/li&gt;
&lt;li&gt;Perform a search without checking the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;li&gt;Verify that the endpoint has &amp;ldquo;luceneSearch=true&amp;rdquo; and uses full-text search.&lt;/li&gt;
&lt;li&gt;Check the &amp;ldquo;Exact Match&amp;rdquo; checkbox and perform a search.&lt;/li&gt;
&lt;li&gt;Verify that the endpoint has &amp;ldquo;luceneSearch=false&amp;rdquo; and uses exact match.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The search behavior changes based on the &amp;ldquo;Exact Match&amp;rdquo; checkbox.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="buttons-in-middle"&gt;Buttons in Middle&lt;/h3&gt;
&lt;h4 id="add-package-button"&gt;&amp;ldquo;Add Package&amp;rdquo; Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Add Package&amp;rdquo; button opens a form to create a new package.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Package&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A form to create a new package is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="table-in-middle"&gt;Table in Middle&lt;/h3&gt;
&lt;h4 id="page-size"&gt;Page Size&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the table can change page size, with a default of 10.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the table in the middle.&lt;/li&gt;
&lt;li&gt;Change the page size and verify the default is 10.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table page size can be changed, and the default is 10.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="print-button"&gt;&amp;ldquo;Print&amp;rdquo; Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Print&amp;rdquo; button on the right prints the Table HTML component to the browser.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Print&amp;rdquo; button on the right of the table.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Print&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Table HTML component is printed to the browser.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-package-name-version"&gt;Column &amp;ldquo;Package Name (Version)&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Package Name (Version)&amp;rdquo; column displays the package name and version, with a clickable link to open the package.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Package Name (Version)&amp;rdquo; column in the table.&lt;/li&gt;
&lt;li&gt;Click on a package name to open the package.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The package name and version are displayed, and clicking on it opens the package.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-release-name-version"&gt;Column &amp;ldquo;Release Name (Version)&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Release Name (Version)&amp;rdquo; column displays the linked release name, or &amp;ldquo;No Linked Release&amp;rdquo; with a clickable link to open the release.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Name (Version)&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The linked release name is displayed, or &amp;ldquo;No Linked Release&amp;rdquo; with a clickable link to open the release.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-release-clearing-state"&gt;Column &amp;ldquo;Release Clearing State&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Release Clearing State&amp;rdquo; column displays the clearing state of the release, or &amp;ldquo;Not Applicable&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Release Clearing State&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The clearing state of the release is displayed, or &amp;ldquo;Not Applicable&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-licenses"&gt;Column &amp;ldquo;Licenses&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Licenses&amp;rdquo; column displays the licenses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Licenses&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The licenses are displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-package-manager"&gt;Column &amp;ldquo;Package Manager&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Package Manager&amp;rdquo; column displays the package manager.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Package Manager&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The package manager is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="column-actions"&gt;Column &amp;ldquo;Actions&amp;rdquo;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Actions&amp;rdquo; column shows an Edit Icon or Delete icon.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Actions&amp;rdquo; column in the table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Edit Icon or Delete icon is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pagination-components"&gt;Pagination Components&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the table bottom has pagination components.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Locate the table in the middle.&lt;/li&gt;
&lt;li&gt;Scroll to the bottom of the table and verify the presence of pagination components.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Pagination components are present at the bottom of the table.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Create Packages</title><link>https://eclipse.dev/sw360/docs/development/completiontests/packages-create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/packages-create/</guid><description>&lt;h2 id="sw360-create-packages-page-test-cases"&gt;SW360 &amp;ldquo;Create Packages&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="add-package-button"&gt;Add Package Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-CRT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Add Package&amp;rdquo; button opens a form to create a new package.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the Main Packages page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Package&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A form to create a new package is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="information-fields"&gt;Information Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-CRT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified information fields in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create Packages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Name (required)&lt;/li&gt;
&lt;li&gt;Version (required)&lt;/li&gt;
&lt;li&gt;Package Type (required) (one of CDX package type) (info hover beneath)&lt;/li&gt;
&lt;li&gt;PURL (required)&lt;/li&gt;
&lt;li&gt;Package Manager (required) (readonly)&lt;/li&gt;
&lt;li&gt;VCS&lt;/li&gt;
&lt;li&gt;Main licenses&lt;/li&gt;
&lt;li&gt;Release (click to open popup with clear button)&lt;/li&gt;
&lt;li&gt;Homepage URL&lt;/li&gt;
&lt;li&gt;Created on (readonly)&lt;/li&gt;
&lt;li&gt;Created by (readonly)&lt;/li&gt;
&lt;li&gt;Modified By (readonly)&lt;/li&gt;
&lt;li&gt;Description (text area)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="create-package-button"&gt;Create Package Button&lt;/h3&gt;
&lt;h4 id="package-creation"&gt;Package Creation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-CRT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that upon clicking the &amp;ldquo;Create Package&amp;rdquo; button, the package is created, and the user is redirected to the &amp;ldquo;Edit Package&amp;rdquo; page of the created package.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create Packages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields and any additional information.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Create Package&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The package is created, and the user is redirected to the &amp;ldquo;Edit Package&amp;rdquo; page of the created package.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Edit Package</title><link>https://eclipse.dev/sw360/docs/development/completiontests/packages-edit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/packages-edit/</guid><description>&lt;h2 id="sw360-edit-packages-page-test-cases"&gt;SW360 &amp;ldquo;Edit Packages&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-EDIT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Update Package&amp;rdquo;, &amp;ldquo;Delete Package&amp;rdquo; (disabled if used in a project), and &amp;ldquo;Cancel&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Packages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="information-fields"&gt;Information Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-EDIT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified information fields in the Summary Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Packages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Name (required)&lt;/li&gt;
&lt;li&gt;Version (required)&lt;/li&gt;
&lt;li&gt;Package Type (required) (one of CDX package type) (info hover beneath)&lt;/li&gt;
&lt;li&gt;PURL (required)&lt;/li&gt;
&lt;li&gt;Package Manager (required) (readonly)&lt;/li&gt;
&lt;li&gt;VCS&lt;/li&gt;
&lt;li&gt;Main licenses&lt;/li&gt;
&lt;li&gt;Release (click to open popup with clear button)&lt;/li&gt;
&lt;li&gt;Homepage URL&lt;/li&gt;
&lt;li&gt;Created on (readonly)&lt;/li&gt;
&lt;li&gt;Created by (readonly)&lt;/li&gt;
&lt;li&gt;Modified By (readonly)&lt;/li&gt;
&lt;li&gt;Description (text area)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="update-package-button"&gt;Update Package Button&lt;/h3&gt;
&lt;h4 id="package-update"&gt;Package Update&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-EDIT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking the &amp;ldquo;Update Package&amp;rdquo; button saves the changes and takes the user to the &amp;ldquo;Package Details&amp;rdquo; page of the current package.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Packages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields and any additional information.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Update Package&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The changes are saved, and the user is redirected to the &amp;ldquo;Package Details&amp;rdquo; page of the current package.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cancel-button"&gt;Cancel Button&lt;/h3&gt;
&lt;h4 id="discard-changes"&gt;Discard Changes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-EDIT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking the &amp;ldquo;Cancel&amp;rdquo; button discards the changes and takes the user to the &amp;ldquo;Package Details&amp;rdquo; page of the current package.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit Packages&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Make changes to the fields.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Cancel&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The changes are discarded, and the user is redirected to the &amp;ldquo;Package Details&amp;rdquo; page of the current package.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Package Details</title><link>https://eclipse.dev/sw360/docs/development/completiontests/packages-details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/packages-details/</guid><description>&lt;h2 id="sw360-package-details-page-test-cases"&gt;SW360 &amp;ldquo;Package Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-button"&gt;Top Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Edit Package&amp;rdquo; button on top, which takes the user to the edit package page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Package Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Edit Package&amp;rdquo; button is present and functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="summary-section"&gt;Summary Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Summary Section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Package Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Summary Section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Id&lt;/li&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Version&lt;/li&gt;
&lt;li&gt;Package Type&lt;/li&gt;
&lt;li&gt;PURL&lt;/li&gt;
&lt;li&gt;Package Manager&lt;/li&gt;
&lt;li&gt;VCS&lt;/li&gt;
&lt;li&gt;Homepage URL&lt;/li&gt;
&lt;li&gt;Licenses&lt;/li&gt;
&lt;li&gt;Linked Release (clickable link to open release)&lt;/li&gt;
&lt;li&gt;Description (note: should be on top like components)&lt;/li&gt;
&lt;li&gt;Created on&lt;/li&gt;
&lt;li&gt;Created by&lt;/li&gt;
&lt;li&gt;Modified On&lt;/li&gt;
&lt;li&gt;Modified By&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="used-in-section"&gt;Used In Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PKGS-DTL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the &amp;ldquo;Used In&amp;rdquo; section if the Package is used in a project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Package Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Used In&amp;rdquo; section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Package is used in total of visible / restricted projects count&lt;/li&gt;
&lt;li&gt;Table with columns: Project name (click to open project), Group, Responsible&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields and table are present and function as described if the Package is used in a project.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="change-log-tab"&gt;Change Log Tab&lt;/h3&gt;
&lt;h4 id="change-log-table"&gt;Change Log Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#toggle-on-top"&gt;PROJ-DTL-021&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#changelog-table"&gt;PROJ-DTL-022&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#opening-changelog"&gt;PROJ-DTL-023&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#basic-info-section"&gt;PROJ-DTL-024&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#changed-fields-table"&gt;PROJ-DTL-025&lt;/a&gt; and
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#returning-to-list"&gt;PROJ-DTL-026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Licenses Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/licenses-main/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/licenses-main/</guid><description>&lt;h2 id="sw360-licenses-page-test-cases"&gt;SW360 &amp;ldquo;Licenses&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="quick-filter"&gt;Quick Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of a Quick Filter on the left which allows the user to filter the license table as they type. The filter works for License Shortname and License Fullname.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Licenses&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Quick Filter on the left.&lt;/li&gt;
&lt;li&gt;Type in the filter and observe the changes in the license table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The license table filters based on the input for License Shortname and License Fullname.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add License&amp;rdquo; button and &amp;ldquo;Export Spreadsheet&amp;rdquo; button on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Licenses&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add License&amp;rdquo; button and &amp;ldquo;Export Spreadsheet&amp;rdquo; button are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="license-table"&gt;License Table&lt;/h3&gt;
&lt;h4 id="pagination-parameters"&gt;Pagination Parameters&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of pagination parameters in the license table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Licenses&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the license table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Pagination parameters are present in the license table.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the license table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Licenses&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the license table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;License Shortname (clickable link to open license)&lt;/li&gt;
&lt;li&gt;License Fullname&lt;/li&gt;
&lt;li&gt;Is checked? (red or green)&lt;/li&gt;
&lt;li&gt;License Type (&amp;quot;&amp;ndash;&amp;quot; if missing)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Create License</title><link>https://eclipse.dev/sw360/docs/development/completiontests/licenses-create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/licenses-create/</guid><description>&lt;h2 id="sw360-create-license-page-test-cases"&gt;SW360 &amp;ldquo;Create License&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-CRT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Create License&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Create License&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="license-tab"&gt;License Tab&lt;/h3&gt;
&lt;h4 id="license-details-section"&gt;License Details Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-CRT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the License Details section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Details section in the License Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Fullname (required)&lt;/li&gt;
&lt;li&gt;Shortname (required)&lt;/li&gt;
&lt;li&gt;License Type (dropdown, dynamic)&lt;/li&gt;
&lt;li&gt;OSI Approved? (one of (n/a), Yes)&lt;/li&gt;
&lt;li&gt;FSF Free/Libre? (one of (n/a), Yes)&lt;/li&gt;
&lt;li&gt;Is checked (checkbox)&lt;/li&gt;
&lt;li&gt;Note (text area)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="license-text-section"&gt;License Text Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-CRT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of a big text area for license text.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Text section in the License Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The big text area for license text is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-obligations-tab"&gt;Linked Obligations Tab&lt;/h3&gt;
&lt;h4 id="add-obligation-button"&gt;Add Obligation Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-CRT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Obligation&amp;rdquo; button on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Obligations Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Obligation&amp;rdquo; button is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="obligations-table"&gt;Obligations Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-CRT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the obligations table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Obligations Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Collapse&lt;/li&gt;
&lt;li&gt;Obligation Title&lt;/li&gt;
&lt;li&gt;Obligation Type&lt;/li&gt;
&lt;li&gt;Action (delete icon)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Expand&amp;rdquo; button to reveal the obligation text.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Expand&amp;rdquo; button reveals the obligation text.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="add-obligation-popup"&gt;Add Obligation Popup&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-CRT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Add Obligation&amp;rdquo; button opens a popup showing obligations which can be added.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Obligations Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Obligation&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A popup showing obligations which can be added is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="create-license-button"&gt;Create License Button&lt;/h3&gt;
&lt;h4 id="license-creation"&gt;License Creation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-CRT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Create License&amp;rdquo; button saves the license, shows the message &amp;ldquo;License created,&amp;rdquo; and navigates the user back to the Main Licenses page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Create License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields and any additional information.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Create License&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The license is saved, the message &amp;ldquo;License created&amp;rdquo; is shown, and the user is navigated back to the Main Licenses page.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>License Detail</title><link>https://eclipse.dev/sw360/docs/development/completiontests/licenses-details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/licenses-details/</guid><description>&lt;h2 id="sw360-license-details-page-test-cases"&gt;SW360 &amp;ldquo;License Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="license-fullname-and-status"&gt;License Fullname and Status&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the License Fullname (License Shortname) on top and the status of whether the license is checked or unchecked (green or red).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The License Fullname and status are displayed as specified.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="edit-license-button"&gt;Edit License Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Edit License&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Edit License&amp;rdquo; button is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="details-tab"&gt;Details Tab&lt;/h3&gt;
&lt;h4 id="unchecked-license-warning"&gt;Unchecked License Warning&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-DTL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of a red warning &amp;ldquo;This license is UNCHECKED&amp;rdquo; if the license is unchecked.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Details Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The red warning is displayed if the license is unchecked.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="license-details-section"&gt;License Details Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-DTL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the License Details section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Details section in the Details Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Fullname&lt;/li&gt;
&lt;li&gt;Shortname&lt;/li&gt;
&lt;li&gt;Is checked&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;OSI Approved? (Yes in green, else red)&lt;/li&gt;
&lt;li&gt;FSF Free/Libre? (Yes in green, else red)&lt;/li&gt;
&lt;li&gt;External link for more information (text box with Save button)&lt;/li&gt;
&lt;li&gt;Note&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="text-tab"&gt;Text Tab&lt;/h3&gt;
&lt;h4 id="license-text-section"&gt;License Text Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-DTL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the License Text section with the license text in pre-formatted font.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Text Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The License Text section with the license text in pre-formatted font is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="obligations-tab"&gt;Obligations Tab&lt;/h3&gt;
&lt;h4 id="edit-whitelist-button"&gt;Edit Whitelist Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-DTL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Edit Whitelist&amp;rdquo; button if obligations are linked. Clicking on the button should show the whitelist table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Obligations Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Edit Whitelist&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Edit Whitelist&amp;rdquo; button is present, and clicking on it shows the whitelist table.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="obligations-table"&gt;Obligations Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-DTL-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the obligations table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;License Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Obligations Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Expand (show obligation text)&lt;/li&gt;
&lt;li&gt;Obligation&lt;/li&gt;
&lt;li&gt;Obligation Type&lt;/li&gt;
&lt;li&gt;Further properties&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verify the presence of a search bar on top.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the search bar is functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="change-log-tab"&gt;Change Log Tab&lt;/h3&gt;
&lt;h4 id="change-log-table"&gt;Change Log Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; &lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#toggle-on-top"&gt;PROJ-DTL-021&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#changelog-table"&gt;PROJ-DTL-022&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#opening-changelog"&gt;PROJ-DTL-023&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#basic-info-section"&gt;PROJ-DTL-024&lt;/a&gt;,
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#changed-fields-table"&gt;PROJ-DTL-025&lt;/a&gt; and
&lt;a href="https://eclipse.dev/sw360/docs/development/completiontests/projects-details/#returning-to-list"&gt;PROJ-DTL-026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Edit License</title><link>https://eclipse.dev/sw360/docs/development/completiontests/licenses-edit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/licenses-edit/</guid><description>&lt;h2 id="sw360-edit-license-page-test-cases"&gt;SW360 &amp;ldquo;Edit License&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-EDIT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Update License&amp;rdquo;, &amp;ldquo;Delete License&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Update License&amp;rdquo;, &amp;ldquo;Delete License&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="license-tab"&gt;License Tab&lt;/h3&gt;
&lt;h4 id="license-details-section"&gt;License Details Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-EDIT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the License Details section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Details section in the License Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Fullname (required)&lt;/li&gt;
&lt;li&gt;Shortname (required)&lt;/li&gt;
&lt;li&gt;License Type (dropdown, dynamic)&lt;/li&gt;
&lt;li&gt;OSI Approved? (one of (n/a), Yes)&lt;/li&gt;
&lt;li&gt;FSF Free/Libre? (one of (n/a), Yes)&lt;/li&gt;
&lt;li&gt;Is checked (checkbox)&lt;/li&gt;
&lt;li&gt;Note (text area)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="license-text-section"&gt;License Text Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-EDIT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of a big text area for license text.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the License Text section in the License Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The big text area for license text is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="linked-obligations-tab"&gt;Linked Obligations Tab&lt;/h3&gt;
&lt;h4 id="add-obligation-button"&gt;Add Obligation Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-EDIT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Obligation&amp;rdquo; button on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Obligations Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Obligation&amp;rdquo; button is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="obligations-table"&gt;Obligations Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-EDIT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the obligations table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Obligations Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of a table with the following columns:
&lt;ul&gt;
&lt;li&gt;Collapse&lt;/li&gt;
&lt;li&gt;Obligation Title&lt;/li&gt;
&lt;li&gt;Obligation Type&lt;/li&gt;
&lt;li&gt;Action (delete icon)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Expand&amp;rdquo; button to reveal the obligation text.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present, and the &amp;ldquo;Expand&amp;rdquo; button reveals the obligation text.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="add-obligation-popup"&gt;Add Obligation Popup&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-EDIT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Add Obligation&amp;rdquo; button opens a popup showing obligations which can be added.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Linked Obligations Tab.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Obligation&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; A popup showing obligations which can be added is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="update-license-button"&gt;Update License Button&lt;/h3&gt;
&lt;h4 id="license-update"&gt;License update&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-EDIT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Update License&amp;rdquo; button saves the changes, shows the message &amp;ldquo;License updated,&amp;rdquo; and navigates the user back to the Main Licenses page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields and any additional information.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Update License&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The license is saved, the message &amp;ldquo;License updated&amp;rdquo; is shown, changelog created, and the user is navigated back to the Main Licenses page.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="delete-license-button"&gt;Delete License Button&lt;/h3&gt;
&lt;h4 id="license-deletion"&gt;License deletion&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; LIC-EDIT-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Delete License&amp;rdquo; button shows a confirmation popup. Clicking &amp;ldquo;Yes&amp;rdquo; should delete the license and navigate the user back to the Main Licenses page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Edit License&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Delete License&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;In the confirmation popup, click &amp;ldquo;Yes&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The license is deleted, and the user is navigated back to the Main Licenses page.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ECC Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/ecc-main/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/ecc-main/</guid><description>&lt;h2 id="sw360-ecc-main-page-test-cases"&gt;SW360 &amp;ldquo;ECC Main&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="quick-filter"&gt;Quick Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ECC-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of a Quick Filter on the left which updates the ECC Overview table as the user types.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;ECC Main&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Quick Filter on the left.&lt;/li&gt;
&lt;li&gt;Type in the filter and observe the changes in the ECC Overview table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The ECC Overview table updates based on the input in the Quick Filter.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ecc-overview-table"&gt;ECC Overview Table&lt;/h3&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ECC-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the ECC Overview table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;ECC Main&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the ECC Overview table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;li&gt;Release name&lt;/li&gt;
&lt;li&gt;Release version&lt;/li&gt;
&lt;li&gt;Creator Group&lt;/li&gt;
&lt;li&gt;ECC Assessor&lt;/li&gt;
&lt;li&gt;ECC Assessor Group&lt;/li&gt;
&lt;li&gt;Ecc Assessment Date&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pagination-parameters"&gt;Pagination Parameters&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ECC-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of pagination parameters in the ECC Overview table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;ECC Main&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the ECC Overview table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Pagination parameters are present in the ECC Overview table.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Vulnerabilities Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/vulnerabilities-main/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/vulnerabilities-main/</guid><description>&lt;h2 id="sw360-main-vulnerabilities-page-test-cases"&gt;SW360 &amp;ldquo;Main Vulnerabilities&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="quick-filter"&gt;Quick Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of a Quick Filter on the left which updates the vulnerability table as the user types.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Main Vulnerabilities&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Quick Filter on the left.&lt;/li&gt;
&lt;li&gt;Type in the filter and observe the changes in the vulnerability table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The vulnerability table updates based on the input in the Quick Filter.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="advanced-filter"&gt;Advanced Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of an Advanced Filter on the left with CVE ID and Vulnerable Configuration inputs and a &amp;ldquo;Filter&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Main Vulnerabilities&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Advanced Filter on the left.&lt;/li&gt;
&lt;li&gt;Enter values in the CVE ID and Vulnerable Configuration inputs and click on the &amp;ldquo;Filter&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The vulnerability table filters based on the input in the Advanced Filter.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="page-title"&gt;Page Title&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the page title displays &amp;ldquo;Vulnerabilities (count of total vulnerabilities)&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Main Vulnerabilities&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the page title.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The page title displays &amp;ldquo;Vulnerabilities (count of total vulnerabilities)&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Vulnerability&amp;rdquo; button and the &amp;ldquo;Show 200/500/1000/All&amp;rdquo; dropdown on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Main Vulnerabilities&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Vulnerability&amp;rdquo; button and the &amp;ldquo;Show 200/500/1000/All&amp;rdquo; dropdown are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-table"&gt;Vulnerability Table&lt;/h3&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the vulnerability table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Main Vulnerabilities&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the vulnerability table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;External ID (clickable to open vulnerability)&lt;/li&gt;
&lt;li&gt;Title (tooltip of info)&lt;/li&gt;
&lt;li&gt;Weighting (note: check &lt;a href="https://code.siemens.com/sw360/sw360portal/blob/c397e64d48b93b6120681a75ed8c9c4a58eb630d/frontend/sw360-portlet/src/main/resources/META-INF/resources/html/vulnerabilities/view.jsp#L219"&gt;https://code.siemens.com/sw360/sw360portal/blob/c397e64d48b93b6120681a75ed8c9c4a58eb630d/frontend/sw360-portlet/src/main/resources/META-INF/resources/html/vulnerabilities/view.jsp#L219&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Publish Date&lt;/li&gt;
&lt;li&gt;Last update&lt;/li&gt;
&lt;li&gt;Actions (edit icon and delete icon) (Clicking on delete should open a confirmation dialog)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pagination-parameters"&gt;Pagination Parameters&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of pagination parameters around the vulnerability table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Main Vulnerabilities&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the vulnerability table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Pagination parameters are present around the vulnerability table.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Create Vulnerability</title><link>https://eclipse.dev/sw360/docs/development/completiontests/vulnerabilities-create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/vulnerabilities-create/</guid><description>&lt;h2 id="sw360-add-vulnerability-page-test-cases"&gt;SW360 &amp;ldquo;Add Vulnerability&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Create Vulnerability&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Create Vulnerability&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-detail-section"&gt;Vulnerability Detail Section&lt;/h3&gt;
&lt;h4 id="fields"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Vulnerability Detail section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Detail section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;External ID (required)&lt;/li&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Description (text area)&lt;/li&gt;
&lt;li&gt;Priortiy&lt;/li&gt;
&lt;li&gt;Priority Text&lt;/li&gt;
&lt;li&gt;Action&lt;/li&gt;
&lt;li&gt;Legal Notice&lt;/li&gt;
&lt;li&gt;Cwe (&amp;ldquo;CWE-&amp;rdquo; then a textbox)&lt;/li&gt;
&lt;li&gt;Extended Description&lt;/li&gt;
&lt;li&gt;CVSS Score (floating numbers)&lt;/li&gt;
&lt;li&gt;CVSS Date&lt;/li&gt;
&lt;li&gt;CVSS Time&lt;/li&gt;
&lt;li&gt;Publish Date&lt;/li&gt;
&lt;li&gt;Publish Time&lt;/li&gt;
&lt;li&gt;Last External Update Date&lt;/li&gt;
&lt;li&gt;Last External Update Time&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-impact-section"&gt;Vulnerability Impact Section&lt;/h3&gt;
&lt;h4 id="fields-1"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Vulnerability Impact section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Impact section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Availability (dropdown)&lt;/li&gt;
&lt;li&gt;Confidentiality (dropdown)&lt;/li&gt;
&lt;li&gt;Integrity (dropdown)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-access-section"&gt;Vulnerability Access Section&lt;/h3&gt;
&lt;h4 id="fields-2"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Vulnerability Access section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Access section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Authentication (dropdown)&lt;/li&gt;
&lt;li&gt;Complexity (dropdown)&lt;/li&gt;
&lt;li&gt;Vecotr (dropdown)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cve-references-section"&gt;CVE References Section&lt;/h3&gt;
&lt;h4 id="add-cve-reference-button"&gt;Add CVE Reference Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add CVE Reference&amp;rdquo; button and the ability to add a row with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the CVE References section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add CVE Reference&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following fields:
&lt;ul&gt;
&lt;li&gt;CVE Year (required)&lt;/li&gt;
&lt;li&gt;CVE Number (required)&lt;/li&gt;
&lt;li&gt;Delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add CVE Reference&amp;rdquo; button is present, and a row with the specified fields is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="assigned-external-component-ids-section"&gt;Assigned External Component Ids Section&lt;/h3&gt;
&lt;h4 id="add-assigned-external-component-id-button"&gt;Add Assigned External Component Id Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Assigned External Component Id&amp;rdquo; button and the ability to add a row with the specified field.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Assigned External Component Ids section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Assigned External Component Id&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following field:
&lt;ul&gt;
&lt;li&gt;External Component Id&lt;/li&gt;
&lt;li&gt;Delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Assigned External Component Id&amp;rdquo; button is present, and a row with the specified field is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-references-section"&gt;Vulnerability References Section&lt;/h3&gt;
&lt;h4 id="add-vulnerability-reference-button"&gt;Add Vulnerability Reference Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Vulnerability Reference&amp;rdquo; button and the ability to add a row with the specified field.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability References section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Vulnerability Reference&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following field:
&lt;ul&gt;
&lt;li&gt;Reference&lt;/li&gt;
&lt;li&gt;Delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Vulnerability Reference&amp;rdquo; button is present, and a row with the specified field is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vendor-advisories-section"&gt;Vendor Advisories Section&lt;/h3&gt;
&lt;h4 id="add-vendor-advisory-button"&gt;Add Vendor Advisory Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Vendor Advisory&amp;rdquo; button and the ability to add a row with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vendor Advisories section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Vendor Advisory&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following fields:
&lt;ul&gt;
&lt;li&gt;Advisory Vendor (required)&lt;/li&gt;
&lt;li&gt;Adivsory Name (required)&lt;/li&gt;
&lt;li&gt;Advisory URL (required)&lt;/li&gt;
&lt;li&gt;delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Vendor Advisory&amp;rdquo; button is present, and a row with the specified fields is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-configuration-section"&gt;Vulnerability Configuration Section&lt;/h3&gt;
&lt;h4 id="add-vulnerability-configuration-button"&gt;Add Vulnerability Configuration Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Vulnerability Configuration&amp;rdquo; button and the ability to add a row with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Configuration section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Vulnerability Configuration&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following fields:
&lt;ul&gt;
&lt;li&gt;Configuration Key&lt;/li&gt;
&lt;li&gt;Configuration Value&lt;/li&gt;
&lt;li&gt;delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Vulnerability Configuration&amp;rdquo; button is present, and a row with the specified fields is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="create-vulnerability-button"&gt;Create Vulnerability Button&lt;/h3&gt;
&lt;h4 id="vulnerability-creation"&gt;Vulnerability Creation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-CRT-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Create Vulnerability&amp;rdquo; button saves the vulnerability and redirects the user to the main vulnerability page with the message &amp;ldquo;Vulnerability (external ID) added successfully!&amp;rdquo; displayed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vulnerability&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields and any additional information.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Create Vulnerability&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The vulnerability is saved, the user is redirected to the main vulnerability page, and the message &amp;ldquo;Vulnerability (external ID) added successfully!&amp;rdquo; is displayed.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Vulnerability Detail</title><link>https://eclipse.dev/sw360/docs/development/completiontests/vulnerabilities-details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/vulnerabilities-details/</guid><description>&lt;h2 id="sw360-vulnerability-details-page-test-cases"&gt;SW360 &amp;ldquo;Vulnerability Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="opening-vulnerability-detail"&gt;Opening Vulnerability Detail&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the vulnerability detail can be opened with its external ID.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Main Vulnerabilities&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the External ID of a vulnerability to open its detail.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The vulnerability detail page is opened with the specified external ID.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="page-title"&gt;Page Title&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the vulnerability title is displayed in the page title.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the page title.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The vulnerability title is displayed in the page title.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="summary-tab"&gt;Summary Tab&lt;/h3&gt;
&lt;h4 id="vulnerability-summary-section"&gt;Vulnerability Summary Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-DTL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Vulnerability Summary section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Summary section in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;External Id&lt;/li&gt;
&lt;li&gt;Publish Date&lt;/li&gt;
&lt;li&gt;Last update&lt;/li&gt;
&lt;li&gt;Priority&lt;/li&gt;
&lt;li&gt;Priority text&lt;/li&gt;
&lt;li&gt;Action&lt;/li&gt;
&lt;li&gt;Impact (if available, list of integrity, availability, confidentiality)&lt;/li&gt;
&lt;li&gt;Legal Notice&lt;/li&gt;
&lt;li&gt;Assigned external component ids (comma-separated list)&lt;/li&gt;
&lt;li&gt;CVE references (comma-separated list)&lt;/li&gt;
&lt;li&gt;Vendor advisories (list of vendor, name, url)&lt;/li&gt;
&lt;li&gt;Vulnerablity scoring CVSS (score, date)&lt;/li&gt;
&lt;li&gt;Access (list of complexity, vector, authentication)&lt;/li&gt;
&lt;li&gt;Common weakness enumeration (CWE with link)&lt;/li&gt;
&lt;li&gt;Vulnerable configurations (list of key-value pairs)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="releases-table"&gt;Releases Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-DTL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the table of releases following the &amp;ldquo;Vulnerability Title is present in the following releases&amp;rdquo; title.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the table of releases in the Summary Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Release (link to release)&lt;/li&gt;
&lt;li&gt;CPE-ID&lt;/li&gt;
&lt;li&gt;Release date (not creation date)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="metadata-tab"&gt;Metadata Tab&lt;/h3&gt;
&lt;h4 id="vulnerability-metadata-section"&gt;Vulnerability Metadata Section&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-DTL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the Vulnerability Metadata section if &lt;code&gt;cveFurtherMetaDataPerSource&lt;/code&gt; is present in the object.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Metadata Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of an unordered list of Key (bold): Value (another unordered list of Key (bold) Value) if &lt;code&gt;cveFurtherMetaDataPerSource&lt;/code&gt; is present in the object.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified unordered list is displayed if &lt;code&gt;cveFurtherMetaDataPerSource&lt;/code&gt; is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="references-tab"&gt;References Tab&lt;/h3&gt;
&lt;h4 id="vulnerability-references"&gt;Vulnerability References&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-DTL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of an unordered list of clickable URLs in the Vulnerability References section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the References Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of an unordered list of clickable URLs.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The unordered list of clickable URLs is present.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Vulnerability Edit</title><link>https://eclipse.dev/sw360/docs/development/completiontests/vulnerabilities-edit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/vulnerabilities-edit/</guid><description>&lt;h2 id="sw360-vulnerability-edit-page-test-cases"&gt;SW360 &amp;ldquo;Vulnerability Edit&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="opening-vulnerability-edit"&gt;Opening Vulnerability Edit&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the vulnerability edit can be opened from the Vulnerability Details page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Edit&amp;rdquo; button to open the vulnerability edit page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The vulnerability edit page is opened with the data from the vulnerability already filled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Update Vulnerability&amp;rdquo;, &amp;ldquo;Delete Vulnerability&amp;rdquo;, and &amp;ldquo;Cancel&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Update Vulnerability&amp;rdquo;, &amp;ldquo;Delete Vulnerability&amp;rdquo;, and &amp;ldquo;Cancel&amp;rdquo; buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-detail-section"&gt;Vulnerability Detail Section&lt;/h3&gt;
&lt;h4 id="fields"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of all fields from the &amp;ldquo;Create Vulnerability&amp;rdquo; page with the data from the vulnerability already filled.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Detail section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;External ID (required)&lt;/li&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Description (text area)&lt;/li&gt;
&lt;li&gt;Priortiy&lt;/li&gt;
&lt;li&gt;Priority Text&lt;/li&gt;
&lt;li&gt;Action&lt;/li&gt;
&lt;li&gt;Legal Notice&lt;/li&gt;
&lt;li&gt;Cwe (&amp;ldquo;CWE-&amp;rdquo; then a textbox)&lt;/li&gt;
&lt;li&gt;Extended Description&lt;/li&gt;
&lt;li&gt;CVSS Score (floating numbers)&lt;/li&gt;
&lt;li&gt;CVSS Date&lt;/li&gt;
&lt;li&gt;CVSS Time&lt;/li&gt;
&lt;li&gt;Publish Date&lt;/li&gt;
&lt;li&gt;Publish Time&lt;/li&gt;
&lt;li&gt;Last External Update Date&lt;/li&gt;
&lt;li&gt;Last External Update Time&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described, with the data from the vulnerability already filled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-impact-section"&gt;Vulnerability Impact Section&lt;/h3&gt;
&lt;h4 id="fields-1"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Vulnerability Impact section with the data from the vulnerability already filled.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Impact section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Availability (dropdown)&lt;/li&gt;
&lt;li&gt;Confidentiality (dropdown)&lt;/li&gt;
&lt;li&gt;Integrity (dropdown)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described, with the data from the vulnerability already filled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-access-section"&gt;Vulnerability Access Section&lt;/h3&gt;
&lt;h4 id="fields-2"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Vulnerability Access section with the data from the vulnerability already filled.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Access section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Authentication (dropdown)&lt;/li&gt;
&lt;li&gt;Complexity (dropdown)&lt;/li&gt;
&lt;li&gt;Vecotr (dropdown)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described, with the data from the vulnerability already filled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cve-references-section"&gt;CVE References Section&lt;/h3&gt;
&lt;h4 id="add-cve-reference-button"&gt;Add CVE Reference Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add CVE Reference&amp;rdquo; button and the ability to add a row with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the CVE References section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add CVE Reference&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following fields:
&lt;ul&gt;
&lt;li&gt;CVE Year (required)&lt;/li&gt;
&lt;li&gt;CVE Number (required)&lt;/li&gt;
&lt;li&gt;Delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add CVE Reference&amp;rdquo; button is present, and a row with the specified fields is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="assigned-external-component-ids-section"&gt;Assigned External Component Ids Section&lt;/h3&gt;
&lt;h4 id="add-assigned-external-component-id-button"&gt;Add Assigned External Component Id Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Assigned External Component Id&amp;rdquo; button and the ability to add a row with the specified field.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Assigned External Component Ids section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Assigned External Component Id&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following field:
&lt;ul&gt;
&lt;li&gt;External Component Id&lt;/li&gt;
&lt;li&gt;Delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Assigned External Component Id&amp;rdquo; button is present, and a row with the specified field is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-references-section"&gt;Vulnerability References Section&lt;/h3&gt;
&lt;h4 id="add-vulnerability-reference-button"&gt;Add Vulnerability Reference Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Vulnerability Reference&amp;rdquo; button and the ability to add a row with the specified field.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability References section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Vulnerability Reference&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following field:
&lt;ul&gt;
&lt;li&gt;Reference&lt;/li&gt;
&lt;li&gt;Delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Vulnerability Reference&amp;rdquo; button is present, and a row with the specified field is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vendor-advisories-section"&gt;Vendor Advisories Section&lt;/h3&gt;
&lt;h4 id="add-vendor-advisory-button"&gt;Add Vendor Advisory Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Vendor Advisory&amp;rdquo; button and the ability to add a row with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vendor Advisories section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Vendor Advisory&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following fields:
&lt;ul&gt;
&lt;li&gt;Advisory Vendor (required)&lt;/li&gt;
&lt;li&gt;Adivsory Name (required)&lt;/li&gt;
&lt;li&gt;Advisory URL (required)&lt;/li&gt;
&lt;li&gt;delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Vendor Advisory&amp;rdquo; button is present, and a row with the specified fields is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vulnerability-configuration-section"&gt;Vulnerability Configuration Section&lt;/h3&gt;
&lt;h4 id="add-vulnerability-configuration-button"&gt;Add Vulnerability Configuration Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Add Vulnerability Configuration&amp;rdquo; button and the ability to add a row with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vulnerability Configuration section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Add Vulnerability Configuration&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of a row with the following fields:
&lt;ul&gt;
&lt;li&gt;Configuration Key&lt;/li&gt;
&lt;li&gt;Configuration Value&lt;/li&gt;
&lt;li&gt;delete row button&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Add Vulnerability Configuration&amp;rdquo; button is present, and a row with the specified fields is added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="update-vulnerability-button"&gt;Update Vulnerability Button&lt;/h3&gt;
&lt;h4 id="vulnerability-update"&gt;Vulnerability Update&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Update Vulnerability&amp;rdquo; button saves the changes and redirects the user to the main vulnerability page with the message &amp;ldquo;Vulnerability (external ID) updated successfully!&amp;rdquo; displayed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Make changes to the fields.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Update Vulnerability&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The changes are saved, the user is redirected to the main vulnerability page, and the message &amp;ldquo;Vulnerability (external ID) updated successfully!&amp;rdquo; is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cancel-button"&gt;Cancel Button&lt;/h3&gt;
&lt;h4 id="discard-changes"&gt;Discard Changes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VUL-EDIT-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking the &amp;ldquo;Cancel&amp;rdquo; button discards the changes and takes the user back to the Vulnerability Details page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vulnerability Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Make changes to the fields.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Cancel&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The changes are discarded, and the user is redirected to the Vulnerability Details page.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Search Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/search-page/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/search-page/</guid><description>&lt;h2 id="sw360-search-page-test-cases"&gt;SW360 &amp;ldquo;Search&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="keyword-search-panel"&gt;Keyword Search Panel&lt;/h3&gt;
&lt;h4 id="search-box"&gt;Search Box&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; SEARCH-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the search box in the Keyword Search panel on the left.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Search&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Keyword Search panel on the left.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The search box is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="restrict-to-type"&gt;Restrict to Type&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; SEARCH-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Restrict to type&amp;rdquo; option with an info hover and the specified restrictions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Search&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Restrict to type&amp;rdquo; option in the Keyword Search panel on the left.&lt;/li&gt;
&lt;li&gt;Hover over the &amp;ldquo;Restrict to type&amp;rdquo; option.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Restrict to type&amp;rdquo; option is present with an info hover, and the specified restrictions are available.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="toggle-and-deselect-all-buttons"&gt;Toggle and Deselect All Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; SEARCH-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Toggle&amp;rdquo; and &amp;ldquo;Deselect all&amp;rdquo; buttons which change the checkboxes in the Restrictions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Search&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Toggle&amp;rdquo; and &amp;ldquo;Deselect all&amp;rdquo; buttons in the Keyword Search panel on the left.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Toggle&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Deselect all&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Toggle&amp;rdquo; and &amp;ldquo;Deselect all&amp;rdquo; buttons are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="search-button"&gt;Search Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; SEARCH-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Search&amp;rdquo; button to submit the search.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Search&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the &amp;ldquo;Search&amp;rdquo; button in the Keyword Search panel on the left.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Search&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Search&amp;rdquo; button is present and functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="search-result"&gt;Search Result&lt;/h3&gt;
&lt;h4 id="total-count"&gt;Total Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; SEARCH-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the search result total count on the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Search&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top right section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The search result total count is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="result-table"&gt;Result Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; SEARCH-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the result table with the specified columns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Search&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the result table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Type (icons matching restriction)&lt;/li&gt;
&lt;li&gt;Text (Name of document, click to open)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The result table with the specified columns is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="page-first-load-message"&gt;Page First Load Message&lt;/h3&gt;
&lt;h4 id="entire-document-message"&gt;Entire Document Message&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; SEARCH-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the message about &amp;ldquo;Entire Document&amp;rdquo; at the bottom of the table on the page first load.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Search&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the bottom of the result table.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The message about &amp;ldquo;Entire Document&amp;rdquo; is displayed at the bottom of the table.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Preferences Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/preferences-page/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/preferences-page/</guid><description>&lt;h2 id="sw360-preferences-page-test-cases"&gt;SW360 &amp;ldquo;Preferences&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="update-settings-button"&gt;Update Settings Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PREF-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Update Settings&amp;rdquo; button at the top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Preferences&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Update Settings&amp;rdquo; button is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="e-mail-notification-preferences-section"&gt;E-Mail Notification Preferences Section&lt;/h3&gt;
&lt;h4 id="enable-e-mail-notifications-checkbox"&gt;Enable E-Mail Notifications Checkbox&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PREF-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Enable E-Mail Notifications&amp;rdquo; checkbox and its behavior.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Preferences&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the E-Mail Notification Preferences section.&lt;/li&gt;
&lt;li&gt;Uncheck the &amp;ldquo;Enable E-Mail Notifications&amp;rdquo; checkbox.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The checkbox is present, and unchecking it disables all checkboxes in this section.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="individual-checkboxes"&gt;Individual Checkboxes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PREF-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of individual checkboxes for Project, Component, Release, Moderation &amp;amp; Clearing in the form of a Carousel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Preferences&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the E-Mail Notification Preferences section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following checkboxes:
&lt;ul&gt;
&lt;li&gt;Project&lt;/li&gt;
&lt;li&gt;Component&lt;/li&gt;
&lt;li&gt;Release&lt;/li&gt;
&lt;li&gt;Moderation &amp;amp; Clearing&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified checkboxes are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sw360-user-section"&gt;SW360 User Section&lt;/h3&gt;
&lt;h4 id="user-details"&gt;User Details&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PREF-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified details in the SW360 User section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Preferences&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the SW360 User section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following details:
&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;E-mail (mailto link)&lt;/li&gt;
&lt;li&gt;Primary Department&lt;/li&gt;
&lt;li&gt;External Id&lt;/li&gt;
&lt;li&gt;Primary Department Role&lt;/li&gt;
&lt;li&gt;Secondary Departments and Roles (unordered list of Department (Bold): Role)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified details are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="rest-api-token-section"&gt;Rest API Token Section&lt;/h3&gt;
&lt;h4 id="fields"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PREF-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Rest API Token section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Preferences&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Rest API Token section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Authorities (checkbox &amp;ldquo;Read Access&amp;rdquo;, (if enabled) &amp;ldquo;Write Access&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;Expiration Date&lt;/li&gt;
&lt;li&gt;Token (info hover)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="generate-token-button"&gt;Generate Token Button&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PREF-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Generate Token&amp;rdquo; button and its behavior.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Preferences&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Rest API Token section.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Generate Token&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The button is present, and clicking it submits a request to generate a new token, which is then displayed in the &amp;ldquo;Token&amp;rdquo; field above.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="token-table"&gt;Token Table&lt;/h3&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; PREF-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the Token table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Preferences&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Token table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Token Name&lt;/li&gt;
&lt;li&gt;Created on&lt;/li&gt;
&lt;li&gt;Expiration Date&lt;/li&gt;
&lt;li&gt;Authorities (&lt;code&gt;[list]&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Action (Revoke Token button)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Requests Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/requests-page/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/requests-page/</guid><description>&lt;h2 id="sw360-requests-page-test-cases"&gt;SW360 &amp;ldquo;Requests&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="moderation-requests-and-clearing-requests"&gt;Moderation Requests and Clearing Requests&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the page shows both Moderation Requests and Clearing Requests.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Both Moderation Requests and Clearing Requests are displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="open-moderation-request-tab"&gt;Open Moderation Request Tab&lt;/h3&gt;
&lt;h4 id="advanced-search"&gt;Advanced Search&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the Advanced Search on the left with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Open Moderation Request Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the Advanced Search:
&lt;ul&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Type (dropdown)&lt;/li&gt;
&lt;li&gt;Document Name&lt;/li&gt;
&lt;li&gt;Requesting User&lt;/li&gt;
&lt;li&gt;Department (User Department)&lt;/li&gt;
&lt;li&gt;Moderators&lt;/li&gt;
&lt;li&gt;State (Dropdown)&lt;/li&gt;
&lt;li&gt;Exact Match checkbox&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Search&amp;rdquo; button at the bottom to submit the search.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Advanced Search is present with the specified fields, and the &amp;ldquo;Search&amp;rdquo; button is functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="moderation-count"&gt;Moderation Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the moderation open count/closed count in the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Open Moderation Request Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The moderation open count/closed count is displayed in the top right.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mr-table"&gt;MR Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the MR Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Open Moderation Request Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns in the MR Table:
&lt;ul&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;Document Name (Click to open)&lt;/li&gt;
&lt;li&gt;Requesting User (mailto link)&lt;/li&gt;
&lt;li&gt;Department&lt;/li&gt;
&lt;li&gt;Moderators (truncated, expanded to see all)&lt;/li&gt;
&lt;li&gt;State&lt;/li&gt;
&lt;li&gt;Actions (If open by user to delete)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pagination-components"&gt;Pagination Components&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of pagination components around the MR Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Open Moderation Request Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Pagination components are present around the MR Table.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="closed-moderation-request-tab"&gt;Closed Moderation Request Tab&lt;/h3&gt;
&lt;h4 id="advanced-search-1"&gt;Advanced Search&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the Advanced Search on the left like the &amp;ldquo;Open Moderation Request&amp;rdquo; Tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Closed Moderation Request Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Advanced Search is present with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="moderation-count-1"&gt;Moderation Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the moderation open count/closed count in the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Closed Moderation Request Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The moderation open count/closed count is displayed in the top right.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mr-table-1"&gt;MR Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the MR Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Closed Moderation Request Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns in the MR Table:
&lt;ul&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Type&lt;/li&gt;
&lt;li&gt;Document Name (Click to open)&lt;/li&gt;
&lt;li&gt;Requesting User (mailto link)&lt;/li&gt;
&lt;li&gt;Department&lt;/li&gt;
&lt;li&gt;Moderators (truncated, expanded to see all)&lt;/li&gt;
&lt;li&gt;State&lt;/li&gt;
&lt;li&gt;Actions (If open by user to delete)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="open-clearing-request-tab"&gt;Open Clearing Request Tab&lt;/h3&gt;
&lt;h4 id="quick-filter"&gt;Quick Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the Quick Filter search box on the left.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Open Clearing Request Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Quick Filter search box is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="advanced-filter"&gt;Advanced Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-010&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the Advanced Filter on the left with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Open Clearing Request Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the Advanced Filter:
&lt;ul&gt;
&lt;li&gt;Select date type and range (dropdown which shows another dropdown)&lt;/li&gt;
&lt;li&gt;Priority (dropdown)&lt;/li&gt;
&lt;li&gt;BA-BL/Group (dropdown)&lt;/li&gt;
&lt;li&gt;Status (dropdown)&lt;/li&gt;
&lt;li&gt;Clearing Type (dropdown)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Advanced Filter is present with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="clearing-count"&gt;Clearing Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-011&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the clearing open count/closed count in the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Open Clearing Request Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The clearing open count/closed count is displayed in the top right.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="clearing-request-table"&gt;Clearing Request Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the Clearing Request Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Open Clearing Request Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns in the Clearing Request Table:
&lt;ul&gt;
&lt;li&gt;Request ID (click to open CR)&lt;/li&gt;
&lt;li&gt;BA-BL/Group&lt;/li&gt;
&lt;li&gt;Project (open project)&lt;/li&gt;
&lt;li&gt;Open Releases&lt;/li&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;li&gt;Priority (color coded)&lt;/li&gt;
&lt;li&gt;Requesting User (mailto link)&lt;/li&gt;
&lt;li&gt;Clearing Progress (percentage)&lt;/li&gt;
&lt;li&gt;Created on&lt;/li&gt;
&lt;li&gt;Preferred Clearing Date&lt;/li&gt;
&lt;li&gt;Agreed Clearing Date&lt;/li&gt;
&lt;li&gt;Clearing Type&lt;/li&gt;
&lt;li&gt;Actions (edit icon)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="closed-clearing-request-tab"&gt;Closed Clearing Request Tab&lt;/h3&gt;
&lt;h4 id="quick-filter-1"&gt;Quick Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-013&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the Quick Filter search box on the left.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Closed Clearing Request Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Quick Filter search box is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="advanced-filter-1"&gt;Advanced Filter&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-014&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the Advanced Filter on the left with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Closed Clearing Request Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields in the Advanced Filter:
&lt;ul&gt;
&lt;li&gt;Select date type and range (dropdown which shows another dropdown)&lt;/li&gt;
&lt;li&gt;BA-BL/Group (dropdown)&lt;/li&gt;
&lt;li&gt;Status (dropdown)&lt;/li&gt;
&lt;li&gt;Clearing Type (dropdown)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Advanced Filter is present with the specified fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="clearing-count-1"&gt;Clearing Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-015&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the clearing open count/closed count in the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Closed Clearing Request Tab.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The clearing open count/closed count is displayed in the top right.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="clearing-request-table-1"&gt;Clearing Request Table&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; REQ-016&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the Clearing Request Table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Requests&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Closed Clearing Request Tab.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns in the Clearing Request Table:
&lt;ul&gt;
&lt;li&gt;Request ID (click to open CR)&lt;/li&gt;
&lt;li&gt;BA-BL/Group&lt;/li&gt;
&lt;li&gt;Project (open project)&lt;/li&gt;
&lt;li&gt;Open Releases&lt;/li&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;li&gt;Priority (color coded)&lt;/li&gt;
&lt;li&gt;Requesting User (mailto link)&lt;/li&gt;
&lt;li&gt;Clearing Progress (percentage)&lt;/li&gt;
&lt;li&gt;Created on&lt;/li&gt;
&lt;li&gt;Preferred Clearing Date&lt;/li&gt;
&lt;li&gt;Agreed Clearing Date&lt;/li&gt;
&lt;li&gt;Clearing Type&lt;/li&gt;
&lt;li&gt;Actions (edit icon)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Requests - Moderation Request Details</title><link>https://eclipse.dev/sw360/docs/development/completiontests/requests-mr-details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/requests-mr-details/</guid><description>&lt;h2 id="sw360-moderation-request-details-page-test-cases"&gt;SW360 &amp;ldquo;Moderation Request Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="assignment-message"&gt;Assignment Message&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MR-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the message &amp;ldquo;Success: You have assigned yourself to this moderation request&amp;rdquo; when a user first opens a Moderation Request in Open state and can be a moderator.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Moderation Request Details&amp;rdquo; page of an Open state request.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The message &amp;ldquo;Success: You have assigned yourself to this moderation request&amp;rdquo; is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MR-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Accept Request&amp;rdquo;, &amp;ldquo;Decline Request&amp;rdquo;, &amp;ldquo;Postpone Request&amp;rdquo;, &amp;ldquo;Remove Me from moderators&amp;rdquo;, and &amp;ldquo;Cancel&amp;rdquo; buttons on top. Clicking on them should open a popup. If the moderation request is closed, no buttons should be displayed on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Moderation Request Details&amp;rdquo; page of an Open state request.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;li&gt;Click on each of the buttons to verify the popup.&lt;/li&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Moderation Request Details&amp;rdquo; page of a closed request.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified buttons are present and function as described for Open state requests. No buttons are displayed for closed requests.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="document-name-and-type"&gt;Document Name and Type&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MR-DTL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the document name and type on the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Moderation Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top right section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The document name and type are displayed on the top right.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="moderation-request-information-section"&gt;Moderation Request Information Section&lt;/h3&gt;
&lt;h4 id="moderation-request-fields"&gt;Moderation Request Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MR-DTL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Moderation Request section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Moderation Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Moderation Request Information section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Requesting user&lt;/li&gt;
&lt;li&gt;Submitted on&lt;/li&gt;
&lt;li&gt;Comment on Moderation Request (text area)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="moderation-decision-fields"&gt;Moderation Decision Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MR-DTL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Moderation Decision section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Moderation Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Moderation Request Information section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;li&gt;Moderator&lt;/li&gt;
&lt;li&gt;Comment on Moderation Decision (text area) (used for Accept/Decline)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="proposed-changes-section"&gt;Proposed Changes Section&lt;/h3&gt;
&lt;h4 id="view-based-on-document-type"&gt;View Based on Document Type&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MR-DTL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the Proposed Changes section shows a view based on the document type.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Moderation Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Proposed Changes section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Proposed Changes section shows a view based on the document type.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="current-component-section"&gt;Current Component Section&lt;/h3&gt;
&lt;h4 id="display-of-component"&gt;Display of Component&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; MR-DTL-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the Current Component section shows the entire component based on the document type.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Moderation Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Current Component section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Current Component section shows the entire component based on the document type.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Requests - Clearing Request Details</title><link>https://eclipse.dev/sw360/docs/development/completiontests/requests-cr-details/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/requests-cr-details/</guid><description>&lt;h2 id="sw360-clearing-request-details-page-test-cases"&gt;SW360 &amp;ldquo;Clearing Request Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Edit Request&amp;rdquo; button and CR ID on top. If the CR is closed, the &amp;ldquo;Reopen Request&amp;rdquo; button should be shown instead, clicking which opens a Reopen dialog box.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page of an Open state request.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Edit Request&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page of a closed request.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Reopen Request&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Edit Request&amp;rdquo; button and CR ID are present for Open state requests. The &amp;ldquo;Reopen Request&amp;rdquo; button is present for closed requests and opens a Reopen dialog box.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="clearing-request-information-for-project-section"&gt;Clearing Request Information for Project Section&lt;/h3&gt;
&lt;h4 id="project-link"&gt;Project Link&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the project link to open the project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Request Information for Project section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The project link is present and functional.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="clearing-request-fields"&gt;Clearing Request Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Clearing Request section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Request Information for Project section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Requesting User&lt;/li&gt;
&lt;li&gt;Created on&lt;/li&gt;
&lt;li&gt;Preferred Clearing Date&lt;/li&gt;
&lt;li&gt;Business Area/Line&lt;/li&gt;
&lt;li&gt;Clearing Type&lt;/li&gt;
&lt;li&gt;Requester comment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="clearing-decision-fields"&gt;Clearing Decision Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the Clearing Decision section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Request Information for Project section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Request Status&lt;/li&gt;
&lt;li&gt;Priority&lt;/li&gt;
&lt;li&gt;Clearing Team&lt;/li&gt;
&lt;li&gt;Agreed Clearing Date&lt;/li&gt;
&lt;li&gt;Last Updated on&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="clearing-request-comments-section"&gt;Clearing Request Comments Section&lt;/h3&gt;
&lt;h4 id="comment-count"&gt;Comment Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-005&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the comment count.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Request Comments section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The comment count is displayed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="comment-box"&gt;Comment Box&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-006&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the comment box with an &amp;ldquo;Add comment&amp;rdquo; button and a search bar on the right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Request Comments section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The comment box with an &amp;ldquo;Add comment&amp;rdquo; button and a search bar on the right is present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="comment-rows"&gt;Comment Rows&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-007&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of comment rows below the comment box.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Clearing Request Comments section.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; Comment rows are present below the comment box.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="edit-clearing-request"&gt;Edit Clearing Request&lt;/h3&gt;
&lt;h4 id="editable-fields"&gt;Editable Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-008&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that the &amp;ldquo;Edit Clearing Request&amp;rdquo; allows changes to the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Edit Request&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Requesting User&lt;/li&gt;
&lt;li&gt;Clearing Type&lt;/li&gt;
&lt;li&gt;Request Status&lt;/li&gt;
&lt;li&gt;Priority&lt;/li&gt;
&lt;li&gt;Clearing Team&lt;/li&gt;
&lt;li&gt;Agreed Clearing Date&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The specified fields are present and editable.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="update-and-cancel-buttons"&gt;Update and Cancel Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; CR-DTL-009&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Update Request&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Clearing Request Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Edit Request&amp;rdquo; button.&lt;/li&gt;
&lt;li&gt;Locate the top section of the edit page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Update Request&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons are present.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Admin User Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/admin-users/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/admin-users/</guid><description>&lt;h2 id="sw360-admin--user-page-test-cases"&gt;SW360 &amp;ldquo;Admin &amp;gt; User&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="advance-search-on-the-left-panel"&gt;Advance Search on the Left Panel&lt;/h3&gt;
&lt;h4 id="search-fields"&gt;Search Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ADMIN-USER-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the advance search on the left panel with the specified fields.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Admin &amp;gt; User&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the advance search section on the left panel.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following search fields:
&lt;ul&gt;
&lt;li&gt;Given Name&lt;/li&gt;
&lt;li&gt;Last Name&lt;/li&gt;
&lt;li&gt;Email&lt;/li&gt;
&lt;li&gt;Primary Department&lt;/li&gt;
&lt;li&gt;Primary Department Role (dropdown)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Search&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The search fields are present, and clicking the &amp;ldquo;Search&amp;rdquo; button loads the results in the same page.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="users-count"&gt;Users Count&lt;/h3&gt;
&lt;h4 id="display-of-users-count"&gt;Display of Users Count&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ADMIN-USER-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the display of the users count in the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Admin &amp;gt; User&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top right section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The users count is displayed in the top right.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="users-table"&gt;Users Table&lt;/h3&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ADMIN-USER-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the Users table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Admin &amp;gt; User&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Users table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Given name&lt;/li&gt;
&lt;li&gt;Last name&lt;/li&gt;
&lt;li&gt;Email (click to open user)&lt;/li&gt;
&lt;li&gt;Active status&lt;/li&gt;
&lt;li&gt;Primary Department&lt;/li&gt;
&lt;li&gt;Primary Department Role&lt;/li&gt;
&lt;li&gt;Secondary Departments and Roles (unordered list of Department (bold) and role)&lt;/li&gt;
&lt;li&gt;Actions (Edit and Edit secondary department)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Edit secondary department&amp;rdquo; action to verify the popup for Secondary department and role.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described. Clicking on &amp;ldquo;Edit secondary department&amp;rdquo; opens a popup for Secondary department and role.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="sw360-user-details-page-test-cases"&gt;SW360 &amp;ldquo;User Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; USER-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Edit User&amp;rdquo; button on the top left and the user email on the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;User Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Edit User&amp;rdquo; button and user email are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="user-information-section"&gt;User Information Section&lt;/h3&gt;
&lt;h4 id="fields"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; USER-DTL-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the User Information section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;User Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the User Information section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Given name&lt;/li&gt;
&lt;li&gt;Last name&lt;/li&gt;
&lt;li&gt;Email Id&lt;/li&gt;
&lt;li&gt;Global Identifier (external ID)&lt;/li&gt;
&lt;li&gt;Active status&lt;/li&gt;
&lt;li&gt;Department&lt;/li&gt;
&lt;li&gt;Primary roles&lt;/li&gt;
&lt;li&gt;Secondary Department and Roles (as unordered list)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="sw360-user-edit-page-test-cases"&gt;SW360 &amp;ldquo;User Edit&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior-1"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons-1"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; USER-EDIT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Update User&amp;rdquo;, &amp;ldquo;Deactivate User&amp;rdquo;, and &amp;ldquo;Cancel&amp;rdquo; buttons on top, and the user email on the top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;User Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Update User&amp;rdquo;, &amp;ldquo;Deactivate User&amp;rdquo;, and &amp;ldquo;Cancel&amp;rdquo; buttons are present, and the user email is displayed on the top right.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="general-information-section"&gt;General Information Section&lt;/h3&gt;
&lt;h4 id="editable-fields"&gt;Editable Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; USER-EDIT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified editable fields in the General Information section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;User Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the General Information section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following editable fields:
&lt;ul&gt;
&lt;li&gt;Given name&lt;/li&gt;
&lt;li&gt;Last name&lt;/li&gt;
&lt;li&gt;Email ID&lt;/li&gt;
&lt;li&gt;Gobal Identifier&lt;/li&gt;
&lt;li&gt;Department&lt;/li&gt;
&lt;li&gt;Primary roles&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified editable fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="secondary-departments-and-roles-section"&gt;Secondary Departments and Roles Section&lt;/h3&gt;
&lt;h4 id="fields-and-buttons"&gt;Fields and Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; USER-EDIT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields and buttons in the Secondary Departments and Roles section.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;User Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Secondary Departments and Roles section.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields and buttons:
&lt;ul&gt;
&lt;li&gt;Secondary department (text box)&lt;/li&gt;
&lt;li&gt;Secondary department role (dropdown)&lt;/li&gt;
&lt;li&gt;delete row button&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Click to add&amp;rdquo; button below&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields and buttons are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="update-user-button"&gt;Update User Button&lt;/h3&gt;
&lt;h4 id="user-update-and-redirection"&gt;User Update and Redirection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; USER-EDIT-004&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Update User&amp;rdquo; button saves the changes and redirects the user to the user&amp;rsquo;s detail page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;User Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Make changes to the fields.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Update User&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The changes are saved, and the user is redirected to the user&amp;rsquo;s detail page.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Admin Vendors Page</title><link>https://eclipse.dev/sw360/docs/development/completiontests/admin-vendors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/development/completiontests/admin-vendors/</guid><description>&lt;h2 id="sw360-admin--vendors-page-test-cases"&gt;SW360 &amp;ldquo;Admin &amp;gt; Vendors&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="quick-filter-and-buttons"&gt;Quick Filter and Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ADMIN-VENDORS-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the Quick Filter on the left, &amp;ldquo;Add Vendor&amp;rdquo; and &amp;ldquo;Export Spreadsheet&amp;rdquo; buttons on top, and the Vendors count on the right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Admin &amp;gt; Vendors&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Quick Filter on the left, the buttons on top, and the Vendors count on the right.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Quick Filter, buttons, and Vendors count are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="vendors-table"&gt;Vendors Table&lt;/h3&gt;
&lt;h4 id="columns"&gt;Columns&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ADMIN-VENDORS-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified columns in the Vendors table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Admin &amp;gt; Vendors&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vendors table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following columns:
&lt;ul&gt;
&lt;li&gt;Full Name (click to open vendor)&lt;/li&gt;
&lt;li&gt;Short name&lt;/li&gt;
&lt;li&gt;URL&lt;/li&gt;
&lt;li&gt;Actions (edit, merge, and delete)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified columns are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="sw360-add-vendor-page-test-cases"&gt;SW360 &amp;ldquo;Add Vendor&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior-1"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ADD-VENDOR-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Create Vendor&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vendor&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Create Vendor&amp;rdquo; and &amp;ldquo;Cancel&amp;rdquo; buttons are present.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="fields"&gt;Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ADD-VENDOR-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified fields in the table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vendor&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following fields:
&lt;ul&gt;
&lt;li&gt;Full Name&lt;/li&gt;
&lt;li&gt;Short Name&lt;/li&gt;
&lt;li&gt;URL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="create-vendor-button"&gt;Create Vendor Button&lt;/h3&gt;
&lt;h4 id="vendor-creation-and-redirection"&gt;Vendor Creation and Redirection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; ADD-VENDOR-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Create Vendor&amp;rdquo; button shows the message &amp;ldquo;Vendor created&amp;rdquo; and redirects the user to the Vendors main page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Add Vendor&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Fill in the required fields.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Create Vendor&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The message &amp;ldquo;Vendor created&amp;rdquo; is shown, and the user is redirected to the Vendors main page.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="sw360-vendor-details-page-test-cases"&gt;SW360 &amp;ldquo;Vendor Details&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior-2"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="opening-vendor-edit-page"&gt;Opening Vendor Edit Page&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VENDOR-DTL-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the Vendor Name opens the Vendor Edit Page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vendor Details&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Click on the Vendor Name.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The Vendor Edit Page is opened.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="sw360-vendor-edit-page-test-cases"&gt;SW360 &amp;ldquo;Vendor Edit&amp;rdquo; Page Test Cases&lt;/h2&gt;
&lt;h3 id="general-page-behavior-3"&gt;General Page Behavior&lt;/h3&gt;
&lt;h4 id="top-buttons-1"&gt;Top Buttons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VENDOR-EDIT-001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the &amp;ldquo;Update Vendor&amp;rdquo;, &amp;ldquo;Delete Vendor&amp;rdquo;, and &amp;ldquo;Cancel&amp;rdquo; buttons on top left, and the Vendor full name on top right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vendor Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the top section of the page.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The &amp;ldquo;Update Vendor&amp;rdquo;, &amp;ldquo;Delete Vendor&amp;rdquo;, and &amp;ldquo;Cancel&amp;rdquo; buttons are present, and the Vendor full name is displayed on the top right.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="editable-fields"&gt;Editable Fields&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VENDOR-EDIT-002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify the presence of the specified editable fields in the Vendor table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vendor Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Locate the Vendor table.&lt;/li&gt;
&lt;li&gt;Verify the presence of the following editable fields:
&lt;ul&gt;
&lt;li&gt;Full Name&lt;/li&gt;
&lt;li&gt;Short Name&lt;/li&gt;
&lt;li&gt;URL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; All specified editable fields are present and function as described.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="update-vendor-button"&gt;Update Vendor Button&lt;/h3&gt;
&lt;h4 id="vendor-update-and-redirection"&gt;Vendor Update and Redirection&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; VENDOR-EDIT-003&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description:&lt;/strong&gt; Verify that clicking on the &amp;ldquo;Update Vendor&amp;rdquo; button saves the changes and redirects the user to the Vendor Details page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steps:&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;ldquo;Vendor Edit&amp;rdquo; page.&lt;/li&gt;
&lt;li&gt;Make changes to the fields.&lt;/li&gt;
&lt;li&gt;Click on the &amp;ldquo;Update Vendor&amp;rdquo; button.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt; The changes are saved, and the user is redirected to the Vendor Details page.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>About Eclipse SW360</title><link>https://eclipse.dev/sw360/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/about/</guid><description>&lt;section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-sm js-td-cover td-overlay td-overlay--dark -bg-primary" &gt;
 &lt;div class="col-12"&gt;
 &lt;div class="container td-overlay__inner"&gt;
 &lt;div class="text-center"&gt;
 &lt;div class="pt-3 lead"&gt;
 
&lt;div class="text-left"&gt;
 &lt;h1 class="display-1 mb-5"&gt;About Eclipse SW360&lt;/h1&gt;&lt;/div&gt;

&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 
&lt;/section&gt;

&lt;div class="container l-container--padded"&gt;
&lt;div class="row"&gt;
&lt;div class="col-12 col-lg-8"&gt;
&lt;p&gt;In most cases, modern software is not built from scratch but is instead assembled using various prepackaged third-party software components. As a result, organizations face several challenges:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Verifying compliance&lt;/strong&gt; when using third-party software components, including license compliance, ECC checks, and IP assessments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sharing knowledge&lt;/strong&gt; about software components and their qualities, such as which components should be recommended and which should be phased out based on specific criteria.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Providing a broad overview&lt;/strong&gt; of the components used in an organization and its supply chain to track which assets are integrated into different products or solutions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These three main use cases cater to different roles within an organization, including quality managers, software developers, legal counsels, software architects, and R&amp;amp;D managers. However, all these roles share a common need for a centralized hub that manages insights into software components.&lt;/p&gt;</description></item><item><title>Bitkom AK Open Source</title><link>https://eclipse.dev/sw360/events/2016/bitkom-ak-open-source/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2016/bitkom-ak-open-source/</guid><description/></item><item><title>Bitkom AK Open Source</title><link>https://eclipse.dev/sw360/events/2018/bitkom-ak-open-source/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2018/bitkom-ak-open-source/</guid><description/></item><item><title>Bitkom Forum Open Source 2018</title><link>https://eclipse.dev/sw360/events/2018/bitkom-forum-open-source-2018/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2018/bitkom-forum-open-source-2018/</guid><description/></item><item><title>EclipseCon 2022</title><link>https://eclipse.dev/sw360/events/2022/eclipsecon-2022/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2022/eclipsecon-2022/</guid><description/></item><item><title>EclipseCon Europe 2016</title><link>https://eclipse.dev/sw360/events/2016/eclipsecon-europe-2016/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2016/eclipsecon-europe-2016/</guid><description/></item><item><title>EclipseCon Europe 2017</title><link>https://eclipse.dev/sw360/events/2017/eclipsecon-europe-2017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2017/eclipsecon-europe-2017/</guid><description/></item><item><title>EclipseCon France 2017</title><link>https://eclipse.dev/sw360/events/2017/eclipsecon-france-2017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2017/eclipsecon-france-2017/</guid><description/></item><item><title>FOSDEM 2022</title><link>https://eclipse.dev/sw360/events/2022/fosdem-2022/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2022/fosdem-2022/</guid><description/></item><item><title>Inner Source Commons 2018</title><link>https://eclipse.dev/sw360/events/2018/inner-source-commons-2018/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2018/inner-source-commons-2018/</guid><description/></item><item><title>JAXenter</title><link>https://eclipse.dev/sw360/events/2016/jaxenter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2016/jaxenter/</guid><description/></item><item><title>License Naming</title><link>https://eclipse.dev/sw360/docs/userguide/bestpractices/license-naming/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/docs/userguide/bestpractices/license-naming/</guid><description>&lt;h2 id="guidelines"&gt;Guidelines&lt;/h2&gt;
&lt;p&gt;Generally the license naming should conform with the SPDX Spec and the SPDX License List&lt;/p&gt;
&lt;p&gt;Please see the &amp;ldquo;License List Fields&amp;rdquo; from &lt;a href="https://github.com/spdx/license-list-XML/blob/main/DOCS/license-fields.md"&gt;&lt;span style="color:red"&gt;↗&lt;/span&gt; https://github.com/spdx/license-list-XML/blob/main/DOCS/license-fields.md&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;where there is especially for identifier:&lt;/p&gt;
&lt;h4 id="license-or-exception-identifier-aka-spdx-short-identifier"&gt;License or Exception Identifier (aka &amp;ldquo;SPDX Short Identifier&amp;rdquo;)&lt;/h4&gt;
&lt;p&gt;Short identifier to be used to identify a license or exception match to licenses or exceptions contained on the SPDX License List in the context of an SPDX file, in source file, or elsewhere&lt;/p&gt;</description></item><item><title>Linux Foundation Collab Summit 2016</title><link>https://eclipse.dev/sw360/events/2016/linux-foundation-collab-summit-2016/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2016/linux-foundation-collab-summit-2016/</guid><description/></item><item><title>Open Compliance Summit 2017</title><link>https://eclipse.dev/sw360/events/2017/open-compliance-summit-2017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2017/open-compliance-summit-2017/</guid><description/></item><item><title>Open Source Leadership Summit 2017</title><link>https://eclipse.dev/sw360/events/2017/open-source-leadership-summit-2017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2017/open-source-leadership-summit-2017/</guid><description/></item><item><title>Open Source Summit Europe 2017</title><link>https://eclipse.dev/sw360/events/2017/open-source-summit-europe-2017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2017/open-source-summit-europe-2017/</guid><description/></item><item><title>Open Source Summit Europe 2021</title><link>https://eclipse.dev/sw360/events/2021/open-source-summit-europe-2021/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2021/open-source-summit-europe-2021/</guid><description/></item><item><title>Open Source Summit Japan 2019</title><link>https://eclipse.dev/sw360/events/2019/open-source-summit-japan-2019/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2019/open-source-summit-japan-2019/</guid><description/></item><item><title>Open Source Summit Japan 2022</title><link>https://eclipse.dev/sw360/events/2022/open-source-summit-japan-2022/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2022/open-source-summit-japan-2022/</guid><description/></item><item><title>Screenshots</title><link>https://eclipse.dev/sw360/screenshots/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/screenshots/</guid><description>&lt;section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-sm js-td-cover td-overlay td-overlay--dark -bg-primary" &gt;
 &lt;div class="col-12"&gt;
 &lt;div class="container td-overlay__inner"&gt;
 &lt;div class="text-center"&gt;
 &lt;div class="pt-3 lead"&gt;
 
&lt;div class="text-left"&gt;
 &lt;h1 class="display-1 mb-5"&gt;Screenshots&lt;/h1&gt;&lt;h3 class="font-weight-light"&gt;A picture is worth a thousand words&lt;/h3&gt;
 &lt;/div&gt;

&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 
&lt;/section&gt;

&lt;div class="container l-container--padded"&gt;
&lt;p&gt;The SW360 application is divided into several sections around managing a catalogue of software components and the software bill-of-material of your software projects, products or services. The menu bar as shown on home screen cover the following main sections.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="home"&gt;Home&lt;/h2&gt;
&lt;p&gt;A dashboard listing the components and projects created by the user logged in. With this overview, the own projects and components can be directly accessed.&lt;/p&gt;</description></item><item><title>The Free Software Legal and Licensing Workshop 2018</title><link>https://eclipse.dev/sw360/events/2018/free-software-legal-licensing-workshop-2018/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2018/free-software-legal-licensing-workshop-2018/</guid><description/></item><item><title>The Seoul Copyright Forum 2017</title><link>https://eclipse.dev/sw360/events/2017/seoul-copyright-forum-2017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2017/seoul-copyright-forum-2017/</guid><description/></item><item><title>Yanking the Chain Open Source Software Compliance in the Supply Chain</title><link>https://eclipse.dev/sw360/events/2018/yanking-the-chain-open-source/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eclipse.dev/sw360/events/2018/yanking-the-chain-open-source/</guid><description/></item></channel></rss>