Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 156 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

OpenText Core SCA Documentation

Loading...

Overview

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Product

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Tools & Integrations

Loading...

Running OpenText Core SCA

Learn about all the different ways of using OpenText Core SCA.

You can run OpenText Core SCA in any of the following ways:

  • Web: The OpenText Core SCA web app enables a browser-based experience, providing all functions, including security and license scanning, automation, reporting, and more.

  • CLI: The OpenText Core SCA Command Line Interface enhances open-source security and license compliance for your project through the command prompt. It allows you to conduct vulnerability scans on your local machine and seamlessly integrate OpenText Core SCA into your pipeline.

  • API: allow you to integrate our service into your code, CI pipelines, and more.

  • Browser: integrates the Select option directly into your browser, allowing you to examine an open-source project's health metrics and license information without leaving the page.

Rust - Cargo

See a breakdown of the file formats and features supported in Rust.

The support for this language is currently in beta. Vulnerability results may be less accurate than normal.

OpenText Core SCA now tracks Rust dependencies through Cargo, using its associated Cargo.lock files. This file is generated whenever one of the following commands is executed:

If the file is committed to the repository, it will be automatically scanned for dependencies when integrated with OpenText Core SCA CI/CD pipeline.

Supported file formats and features

Vulnerability management

This area covers how to manage open-source vulnerabilities in your application.

PHP - Composer

See a breakdown of the file formats and features supported in PHP.

OpenText Core SCA currently tracks PHP dependencies installed through Composer dependency manager, using either the composer.json or composer.lock files.

OpenText Core SCA recommends including the composer.lock file, as it contains resolved versions of both direct and indirect dependencies, leading to more accurate scan results.

The composer.lock file is generated whenever one of the following commands is executed:

If at least one of the supported files is committed to the repository, it will be automatically scanned for dependencies when integrated with OpenText Core SCA CI/CD pipeline.

Upgrade your account

Enhance your OpenText Core SCA experience by learning how to upgrade your account.

When you sign up for a free account with OpenText Core SCA, you will receive 1,000 initial scan credits to use at your convenience, with no expiration date. After using your initial credits, you will receive an additional 100 free scan credits added to your account on the 1st of each month.

give you access to a range of premium features, including unlimited scans.

To upgrade your account, click Upgrade to premium in the left-side menu and follow the prompts. You must specify the number of developers who will be contributing to the repositories integrated with OpenText Core SCA. After you complete the process, you will have access to OpenText Core SCA service with unlimited scans. To upgrade to our with unlimited scans, .

For an enterprise subscription, contact our sales team at .

Solve vulnerabilities using Pull Requests (PR) via API

Learn how to use Pull Requests (PR) via the API.

Assume there is a repository with huge number of vulnerabilities. It will take time to go through each one of them and potentially fix them. OpenText Core SCA offers the ability to open a pull request where it tries to solve many vulnerabilities at once.

Endpoints

/api/{version}/open/repository/{repositoryId}/pull-request/branch/{branchId}/{notify}/{includeUnaffected}

/api/{version}/open/repository/{repositoryId}/get-branches

OpenText Core SCA can generate a new bulk pull request for the repository, with ID 15707 in this case (shown in the URL). The branch ID is found using the get-branches endpoint.

The OpenText Core SCA APIs
The OpenText Core SCA Select Browser Extension
OpenText Core SCA Premium & Enterprise accounts
paid tiers
click here
[email protected]

Security overview

For information about OpenText Core SCA security, refer to the following document.

The content of this PDF was last updated in May 2024, and represents the status quo as of the time it was written.

4MB
Debricked Security Overview 2024.pdf
PDF
Open

Manage contributing developers

Learn how to edit the number of contributing developers on your team.

OpenText Core SCA defines contributing developers as developers contributing to the repositories integrated with OpenText Core SCA.

In order to add more contributing developers to your subscription:

  1. Go to Billing on the left side menu.

  2. Click your subscription.

  3. Click Edit subscription to add or remove seats.

Supported language for OpenText Core SCA tool

See how to change the app language.

You can use the OpenText Core SCA tool in English and Swedish.

To change the language in the tool:

  1. Hover on your name at the bottom of the left-side menu.

  2. Click User settings.

  3. Select your preferred language in the Language drop-down. Selecting By browser sets the language according to your browser settings. The setting will be saved automatically.

Default Branch

See how OpenText Core SCA identifies the default branch of your projects.

Due to limitations, it is not always possible to identify the default branch except for GitLab users. For other users, the default branch can be identified if the branch name is either master or main. In cases where the default branch cannot be determined, the data from the branch that contains the most recent commit is displayed.

Package manager
Supported file formats
Root dependencies
Indirect dependencies
Dependency trees
Security scanning
License scanning
Root fix
Pull Request
Reachability Analysis
High Performance Scan

Cargo

Cargo.lock

Yes*

*This is a native lock file format. Native lock file formats are the fastest formats to scan.

Example:

First, OpenText Core SCA gets the branch ID

then, a new pull request is created on branch ID 2, enabling notification, not including unaffected dependencies in the PR.

curl -X 'GET' \  'https://debricked.com/api/1.0/open/repository/15707/get-branches' \  -H 'accept: */*' \  -H 'Authorization: Bearer <token>
curl -X 'GET' \  'https://debricked.com/api/1.0/open/repository/15707/pull-request/branch/2/1/0' \  -H 'accept: */*' \  -H 'Authorization: Bearer <token>
cargo build

cargo update
Supported file formats and features
Package manager
Supported file formats
Root dependencies
Indirect dependencies
Dependency trees
Security scanning
License scanning
Root fix
Pull Request
Reachability Analysis
High Performance Scan

Composer

*This is a native lock file format. Native lock file formats are the fastest formats to scan.

composer install

composer required

composer update

OpenText Core Software Composition Analysis (SCA) Documentation

Explore our capabilities, integrations, API, and use-cases to elevate your open-source journey.

OpenText Core SCA helps you take full control of security, compliance, and project health with a toolkit that revolutionizes the way you use open source.

First Setup

Integrating with OpenText Core SCA

OpenText Core SCA's Tools

The OpenText Core SCA Fundamentals - webinar recording

Check out our latest training webinar to learn the fundamentals of OpenText Core SCA:

Need help getting started with OpenText Core SCA? Join one of our and ask questions directly to our experts.

Need more help?

If you have any additional questions feel free to contact. You can also join to stay up-to-date with everything related to OpenText Core SCA and the open source universe.

Getting started

This section is your gateway to getting started with OpenText Core Software Composition Analysis (OpenText Core SCA).

Follow these steps after creating an account with OpenText Core SCA:

  1. Set up an integration If you have a project's dependency file but setting up an integration is not applicable at the moment, you can upload the dependency file manually.

  2. Set up a license use case When you first access the license view, you will see that all repositories are marked as "Unknown" in the risk column. This is because you have not configured any use cases for your repositories yet. Defining a use case helps the tool understand how you organize the code in your repositories, which affects the risk associated with any particular license.

  3. The automations engine allows for rules to be triggered based on conditions. For example, a rule can fail a pipeline if it detects a new high-risk vulnerability detected, or an unwanted license.

    By default, OpenText Core SCA has set up a number of rules to prevent unwanted licenses or dangerous vulnerabilities. Click the toggle button to disable any rule.

Get help in OpenText Core SCA tool

Here are the different ways of getting more help while using OpenText Core SCA.

You can access our help center by clicking the Help button at the right bottom of the screen.

  • Interactive tutorials explain the vulnerabilities and assist you in setting up integrations and license-related automations

  • Access to our Docs enable you to find answers to your questions through the search bar

  • Our Instant live chat is open weekdays from 9:00 to 17:00 CET and connects you with OpenText Core SCA experts ready to answer any of your questions

In case you want to get in contact with our support team through a different channel, you can also e-mail directly to . You can expect a reply within 1 business day.

Unable to access the help widget

To get access to live chat or the Help widget in the tool, onboarding tools, or service notices, you must accept the Support and Functional cookies. For more information about these cookies, see the .

Set a review status

Learn how to set a review status for vulnerabilities you’ve been notified about.

For each alerted vulnerability, you can assign a status. You can choose to mark the vulnerability as unaffected, or vulnerable or you can choose to snooze or pause. All the vulnerabilities have a default status of unexamined until you decide to change it.

To set a review status:

  1. Go to your Repositories from the left side menu.

  2. Click a specific repository.

  3. In the Repository view, click a specific CVE.

  4. In the Actions section, choose one of the following available status choices:

  • Unaffected: You can mark the CVE as Unaffected to ignore the vulnerability.

  • Vulnerable: You can flag a CVE as Vulnerable to ensure it is on your radar.

  • Pause rule triggering: You can wait to take action and pause automation triggering. You can either Snooze or Pause. When you snooze the CVE, you can define a period of time (1 week, 1 month and so on). When you pause the CVE, you can pause until a new fix is available. Pausing is only supported for the Github app.

Use automation to set a review status

The automation engine can help you remove manual work, by setting review statuses. You can use automations to flag CVEs as unaffected or vulnerable. For example, you can create a rule that when a dependency contains a vulnerability where CVSS is low (0.0-3.9), then mark the vulnerabilities as unaffected.

Set up a use case using API

Learn how to set up a use case for your repositories using the API.

The first time you visit the License view; you willl notice that the value in the risk column is set to Unknown for all licenses. This is because you have not yet configured any use cases for your repositories. You can select a use case through the API using the endpoint:

/api/{version}/open/repository-settings/repositories/{repositoryId}/select-use-case

To do so, send a JSON containing a choice of the use case, for example:

"useCase": 2

Here, the useCase can be one of the following integers:

  • 0/null - Unknown

  • 1 - Non-distributed internal

  • 2 - Non-distributed public

  • 3 - Distributed generic

  • 4 - Distributed electronics

Here’s an example showing you how to set the use case to “Non-distributed public” for a repository with ID = 1337:

View more details

Learn how to see more details about a project in OpenText Core SCA’s Open Source Select.

Open Source Select enables you to view more details of the dependency to better determine their quality and state. After clicking on a specific project, you are able to learn more from the description, Readme (fetched from the project’s GitHub repository) and external links, and dive deep into the Health metrics to truly understand the strengths and weaknesses of the dependency.

Similar dependencies

To help you find new projects, we list two dependencies with similar functionality and their respective popularity and contributor scores. You can use the Compare functionality to compare them to the dependency you are currently viewing.

Health metrics

You can find a quick overview of the on top of the page, and a comprehensive view in the metric cards below. Each metric card visualizes their practices using multiple charts. You can hover on each practice's position in the chart to see the score of that practice, and if you click on one, all of its features are shown.

Choose open source components with OpenText Core SCA's open source select and start left - video guide

Solve vulnerabilities manually with root fixes

Root Fixes enable you to manually solve vulnerabilities.

Currently, this feature is available for JavaScript, Java, Go, and NuGet.

Root fixes contain the first next version of the direct dependency in the dependency tree that does not contain a vulnerable version of the affected dependency. In simpler terms, a Root fix is a solution to a dependency vulnerability that starts at the root of the dependency tree.

By addressing the root cause of the vulnerability, Root fixes ensure that the entire dependency tree is updated, using the version constraints set up by its dependencies. This way of updating dependencies is generally preferred over updating the vulnerable dependency directly, as it has a much lower risk of errors and breaking changes. It also eliminates the need for manually researching the required direct dependency update, saving developers valuable time.

Solve a vulnerability using root fix

  1. Click Repositories in the left side menu and select your project. Here you can see a list with all the CVEs found.

  2. Click one CVE to open the vulnerability page.

  3. Go to the Introduced through section and select the dependency file to analyze. In some cases, the scan can find more than one dependency file within your project. You can see in green which is the closest secure version of the root package to update.

    If OpenText Core SCA is not able to find a secure version to solve the vulnerability, the Introduced through section shows an unknown.

Once the scanning is completed, the repository should no longer have this vulnerability.

Solve a vulnerability using root fix - video guide

End of Life (EOL)

Learn about the End of Life (EOL) information in Open Source Select.

Open Source Select provides you with information about projects that have been declared as no longer being maintained or about to reach end of life. Currently, we only provide this information for NPM packages.

The different states of a project are:

  • Repository archived - Indicates that the repository is already archived.

  • Package deprecated - Indicates that the package is officially deprecated.

  • Vendor announced - Indicates that the vendor has announced an end-of-life date after which the package or project will no longer be maintained.

The EOL announced date is based on the version of the package or project.

Swift - CocoaPods

See a breakdown of the file formats and features supported in Swift.

OpenText Core SCA now tracks Swift dependencies through CocoaPods using Podfile.lock files.

If the file is committed to the repository, it will be automatically scanned for dependencies when integrated with OpenText Core SCA CI/CD pipeline.

Supported file formats and features

Package manager
Supported file formats
Root dependencies
Indirect dependencies
Dependency trees
Security scanning
License scanning
Root fix
Pull Request
Reachability Analysis
High Performance Scan

*This is a native lock file format. Native lock file formats are the fastest formats to scan.

Enable Pull Request support

Learn how to enable Pull Request support.

For OpenText Core SCA to be able to generate Pull Requests on your behalf, you should do some configuration based on the platform:

  • GitHub: To enable pull requests, you are required to integrate with GitHub using the GitHub app.

  • GitLab: if you have set up an integration to GitLab, to enable merge requests, you should provide additional credentials (as explained in the article).

  • Azure DevOps: if you have set up the , to enable pull requests, you must provide additional credentials (as explained in the article).

Frequently asked questions (FAQ)

Browse our FAQ section for detailed answers to common questions about using OpenText Core SCA.

Is OpenText Core SCA’s service on prem or SaaS?

OpenText Core SCA is a Software as a Service (SaaS) solution currently.

Security terms

A glossary of common security terms used in the OpenText Core SCA tool.

Here are some of common security terms that are used within the tool:

Common Vulnerability Enumeration (CVE)

This is a vulnerability published in an open database by NVD, with an assigned vulnerability ID known as CVE ID. Examples include Heartbleed (CVE-2014-0160) and Shellshock (CVE-2014-6271).

Scala - SBT

This page provides a detailed overview of the file formats and features that Scala supports.

OpenText Core SCA now supports tracking Scala dependencies through the following methods:

  • SBT, by utilizing pom.xml files

  • , to find dependencies not specified in manifest files

Popularity

See how we define the Popularity metric in Project Health.

The popularity of a repository is another crucial indicator of the health of a project. It signifies interest from both developers and users alike, pointing towards viability and continued development. Between each layer, there are weights that determine the impact of any given feature on a practice, and of any given practice on the . You can find the data model illustrated below:

Usage

This practice describes the usage of a repository among open-source users. The following features of Usage are measured:

Vulnerability export

Learn how to create a Vulnerability Export.

This feature is only available for users. Already have an account?

The Vulnerability Export summarizes data about all of your projects. It shows a summary of the total number of vulnerabilities found, their classification between critical and high, and their review status.

Policies

Learn how to group your automation rules into policies for a single point of control.

Group automation rules into policies to simplify the management of these rules by providing a single point of control. This makes it easier to enable, disable, or modify multiple rules at once. Additionally, Enterprise users are able to use those policies to evaluate packages in Open Source Select with .

View existing policies

1. Go to Automations on the left side menu (you can also access automations for a specific repository by clicking Automate on the top right corner). 2. See a list of your existing policies under the tab Policies. 3. Click a specific policy to see the full list of rules that are part of it. Here, you can add new rules, enable/disable/edit them, and remove them from the policy.

OpenText Core SCA Select Browser Extension

Learn how to install and use the OpenText Core SCA Select Browser Extension.

The browser extension is currently only available for Chrome via the Chrome Web Store. .

Supported source code repositories and package registries: , , , , , , , , , , and .

The Select Browser Extension allows you to view OpenText Core SCA's Health data directly on a repository or a package manager's GitHub page. The extension integrates seamlessly with your browsing experience, providing you with comprehensive insights into the project without navigating away from the site.

Edit an automation rule

Learn how to edit, disable, or delete your automation rules.

Edit

To edit an existing automation rule:

  1. Go to Automations on the left side menu.

Licence families

Understand how OpenText Core SCA defines different open-source license families.

At OpenText Core SCA, we group licenses into different license families, applicable to different use cases. They are shown in one of the columns in the License view and can be used in your customized automation rules. Here’s how we categorize them:

Proprietary

A non-free license, or proprietary license, allows the owner to restrict the use, modification, and redistribution of the software.

Data exports and SBOMs

Discover the different ways of exporting data with OpenText Core SCA.

Objective-C - CocoaPods

See a breakdown of the file formats and features supported in Objective-C.

OpenText Core SCA now tracks Objective-C dependencies through CocoaPods using Podfile.lock files. If this file is committed to the repository, it will be automatically scanned for dependencies when integrated with OpenText Core SCA CI/CD pipeline.

Supported file formats and features

Package manager
Supported file formats
Root dependencies

Project health

Learn more about Project Health - what it is and what the different metrics mean.

Project health is an important aspect to consider when selecting dependencies. But what does Project Health even entail? OpenText Core SCA's Open-Source Health Metrics can help you gain an understanding of key aspects of any open-source project and make informed decisions when choosing what to bring into your codebase.

What is a health metric?

A Metric is a measurement of a key aspect of an open-source project’s overall quality. For example, its contributors or its popularity. Our underlying data model aggregates data points into sub-metrics, which are then aggregated into a metric. We call these:

Start left policies

Why start over when you can Start Left?

The Start Left feature is only available for users. Already have an account?

You can use your automation policies to evaluate new packages in Open Source Select. If you are looking for a new package in Select, you can check whether or not it will trigger an automation rule using Start Left Policies.

Open source select

Learn how to use the OpenText Core SCA Open Source Select to choose the right open source project from the get-go and make the most of our metrics.

Compare projects

Learn how to compare open source projects using OpenText Core SCA’s Open Source Select.

enables you to compare projects side by side and gain insight into their individual strengths and weaknesses. You can compare aspects such as security, contributor commitment, and popularity.

To compare (up to three) projects:

  1. Select the projects that you want to compare by clicking the Add to comparison (the scale icon) button on each project's card.

  2. Click Compare selected dependencies below the search bar.

Help

Here are the various ways to receive additional assistance while using OpenText Core SCA.

You can get in touch with our team through two channels:

  • Our instant live chat: Our instant live chat is available on weekdays from 9:00 AM to 5:00 PM CET. Connect with our OpenText Core SCA experts, who are ready to answer any questions you may have. You can access the chat through the or by clicking the Chat button.

  • Email: Send an email directly to . You can expect a reply from us within 1 business day.

Delete your account

See how to delete your OpenText Core SCA account.

Keep in mind that if you delete your account as the only administrator, the whole company account will also be deleted, along with all the data and other user accounts. If you want to keep the company account, make sure to give another user admin rights before deleting your own account.

In order to delete your user account:

  1. Hover on your name at the bottom of the left-side menu.

Enable and disable snoozing vulnerabilities

Learn how to enable or disable snoozing vulnerabilities.

By default, all users are able to snooze a vulnerability by changing its Review status. As the administrator, you are also able to disable that feature for all users in your company.

To manage the snoozing functionality for the company account:

  1. Go to Admin tools on the left side menu.

  2. Type your password to enter the administrative mode.

Manage billing frequency

Learn how to edit your billing frequency.

You can choose between two different billing periods, monthly and annual.

To change your billing frequency:

  1. Go to Billing on the left side menu.

  2. Click your subscription.

Export table data

Learn how to export repository table data.

You can export the filtered and visible data in the table to a CSV file. The CSV file is sent to your registered email ID. The exported file reflects the current filtered view of the table, ensuring that only the visible data is included. To export the table data:

  1. Click Export table located at the top-right corner of the table. The Export table pop-up window appears.

  2. Click Export to export the data.

Unexamined: This is the default status before choosing another one.

What type of scanning does OpenText Core SCA do?

OpenText Core SCA utilizes manifest-based scanning, which effectively identifies security issues across a wide range of file formats. While binary scanning is often considered superior due to its ability to produce fewer false positives, it can overlook critical security vulnerabilities, supply chain attacks, and licensing problems. Additionally, binary scanning does not account for test and build dependencies, which can still present risks, unlike manifest-based scanning.

Manifest-based scanning identifies components listed in your dependency files, while binary scanning analyzes and fingerprints binary files. Binary scanning can be useful when source code or package managers for installing dependencies are unavailable. However, it does not include development and test dependencies, which can pose significant risks. Manifest-based scanning is more effective at identifying vulnerabilities and compliance issues, making it better suited for the developer workflow. For vendor code and C++/C scanning, OpenText Core SCA can scan an SBOM if the vendor provides one.

Ultimately, the decision between manifest scanning and binary scanning depends on your workflow and objectives. At OpenText Core SCA, we emphasize automation and tools that enable developers to identify and resolve issues swiftly and accurately. This is why we concentrate on manifest scanning.

How accurate is the service in finding a vulnerability?

OpenText Core SCA service detects any open-source vulnerabilities in your repository, drawing information from various sources, including but not limited to the NVD Database, NPM, C# Announcements, FriendsOfPHP’s security advisories, the Go Vulnerability Database, the PyPA Python Advisory Database, GitHub Issues, GitHub Security Advisories, mailing lists, and more. These sources are updated every 15 minutes to ensure that we identify as many vulnerabilities as possible.

OpenText Core SCA has found a wrong dependency. What should I do?

If you think OpenText Core SCA has identified an incorrect dependency, you can manage and override your dependency matches using our CLI.

What is meant by “increased computation” for enterprise customers?

Increased computation is when the number of available workers is increased to allow scanning more number of files simultaneously. This greatly enhances the scan speed for enterprise customers.

To what extent can root fixes break the code?

When root fixes cause issues in the code, you should manually update the dependencies. There is always a risk of breaking changes when updating these dependencies, and the extent of that risk varies with each update. While the risk is not inherently greater with root fixes than with indirect fixes, OpenText Core SCA ensures that dependency tree is not compromised by introducing a version of a dependency incompatible with its upstream dependencies.

How long do I need to wait to before requesting a second password reset?

You must wait one hour before you can request a second password reset.

Is there a way to restrict what repositories certain users can see?

Role Based Access Control, which is an Enterprise feature, enables granting and enforcing access to functionalities and integrated repositories by assigning predefined roles to users.

Is it possible to extract a pie chart or other visualization of the identified licenses and dependencies?

You can export licenses, including both licenses and dependencies, in an Excel format, which allows you to create a pie chart. Alternatively, use the API for assistance.

What do we classify as a “scan”?

When a developer commits code, the code is scanned irrespective of the size of the committed changes

Does OpenText Core SCA run on a PC, or does it upload data to your servers?

There are several ways to run OpenText Core SCA service.

  • Manually upload your dependency files.

  • Integrate OpenText Core SCA service into your test pipelines through Platforms such as GitHub or GitLab.

How do you distinguish between frequent and sporadic contributors?

OpenText Core SCA examines averages and reviews the list of committers on a monthly basis. As many businesses have a certain number of "non-developer" committers for a limited time, the customers are expected to determine the actual number of contributing developers and incorporate the information into the contract.

What measures does OpenText Core SCA implement to prevent and detect vulnerabilities?

OpenText Core SCA implements the following measures to prevent and detect vulnerabilities:

  • Use own service to find known vulnerabilities in dependencies

  • Conduct third-party penetration tests

  • Continuously run own penetration tests internally

Where is OpenText Core SCA’s data stored?

Customer data is stored using Google Cloud Platform (GCP) as the service provider, located in Netherlands.

Click the … (three dots) button on the right-hand side of the rule.

  • Select Edit rule. Here, you can add or remove one or multiple conditions and actions or repositories.

  • To save the changes, click Generate rule and then Save.

  • Disable

    To disable an existing rule:

    1. Go to Automations on the left side menu.

    2. Disable the toggle button on the right-hand side of the rule.

    Delete

    To permanently delete an existing rule:

    1. Go to Automations on the left side menu.

    2. Click the … (three dots) button on the right-hand side of the rule.

    3. Select Delete rule.

    Permissive

    A permissive software license, also known as BSD-style license, is a "free software" license that, compared to copyleft, only has minimal restrictions on how to use, modify and redistribute the software. The best-known permissive licenses are BSD Licenses, Apache Licenses, such as Apache License 2.0 (Apache-2.0), and MIT License.

    Strong copyleft

    In the family of strong copyleft licenses, regulations can be imposed on all derived works, meaning that the original creator of the works has the most rights. One of the best-known strong copyleft licenses is the GNU General Public Licenses, such as GNU General Public License v3.0 only (GPL-3.0-only). Strong copyleft licenses are also applicable to art, music, sports, photography, and video.

    Weak copyleft

    Weak copyleft licenses refer to licenses where not all derived work inherits the copyleft license. Instead, it depends on how the work was derived. Weak copyleft licenses are mostly used for software libraries by allowing links to other libraries. Known examples of these are the Mozilla Public License 2.0 (MPL-2.0), and GNU Lesser General Public License v3.0 only (LGPL-3.0-only). The best-known products with weak copyright are Mozilla and OpenOffice.org.

    Public domain

    Software placed in the public domain does not have a copyright, trademark, or patent. The software may be freely distributed, modified, or sold.

    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    CocoaPods

    podfile.lock

    Yes*

    *This is a native lock file format. Native lock file formats are the fastest formats to scan.

    Features - The lowest level datapoints

  • Practices - The aggregated sub-metrics

  • Metrics - The final aggregation of practices

  • You can think of a metric as the area that you want to investigate (for example, is the project popular? is there a healthy contributor community?), and practices as more specific questions you want answered (for example, how experienced are the contributors?), how long do contributors stay with the project?).

    Between each layer, there are weights that determine the impact of any given feature on a practice, and of any given practice on a metric. You can find the data model of each metric illustrated in Contributors, Popularity, and Security.

    In the User permissions tab, toggle Allow snooze for vulnerabilities to enable the function and switch the toggle off to disable it.

    Keep in mind that all vulnerabilities with Review status previously set to Paused/Snoozed will be set to Unexamined if you confirm your action.

    Click Edit subscription, and then click Change.

    Note that selecting the annual payment is binding. Once you have already switched to the annual payment, it is not possible to switch back to the monthly payment until the year has passed.

    composer.json

    Yes

    Composer

    composer.lock

    Yes*

    CocoaPods

    podfile.lock

    Yes*

    Set up automations
    [email protected]
    Privacy Policy
    Azure DevOps integration
    Security terms
    Data sources
    See your data
    Pull Requests (PR)
    Set a review status
    Reachability analysis
    Root fixes
    Total Downloads - The total number of times a repository has been downloaded through its respective package manager.
  • Total Forks - The total number of times a repository has been forked.

  • Developer popularity

    This practice describes how popular the repository is among the developers. More popular repositories attract more and more skilled developers to contribute.

    The following features of Developer Popularity are measured:

    • Total Stargazers - The total number the repository has been “starred” in GitHub.

    • Total Watchers - The total number of users watching this repository in GitHub. Watchers are notified about activity on the chosen repository.

    • Contributor Influence - How much attention the contributors attract to the repository.

    • Contributor Trend - The change in contributors, averaged over 10 weeks.

    Community activity

    This practice describes how active the community of a repository is. In this case, “community” entails both contributors and users. The activity is measured with features that analyze the current volume of commits, issues, and pull requests, as well as the trend of said volume.

    The following features of Community Activity are measured:

    • Recent Commits - How many new commits have been made to the master branch within the last 10 weeks.

    • Commits Trend - The linear change in commits per week for the past 21 weeks (whether it is increasing or decreasing).

    • Recent Issues - How many new issues have been posted within the last 10 weeks.

    • Issues Trend - The linear change in posted issues per week for the past 21 weeks (whether it is increasing or decreasing).

    • Recent Pull Requests - How many new pull requests have been made within the last 10 weeks.

    • Pull Requests Trend - The linear change in pull requests per week for the past 21 weeks (whether it is increasing or decreasing).

    • Recently Closed Issues - How many issues have been closed within the past 10 weeks.

    • Closed Issues Trend - The linear change in closed issues per week for the past 21 weeks (whether it is increasing or decreasing).

    Ecosystem buzz

    This practice describes the buzz of a particular open-source project in different parts of the ecosystem. A higher buzz implies better support from platforms such as StackOverflow.

    The following feature of Ecosystem Buzz is measured:

    • Total Discussions on Stackoverflow - The total number of search hits a repository/package has on Stackoverflow.

    metric
    Generate a vulnerability export
    1. Click Generate Export on the top right corner of the page.

    2. Select the scope of the export as either global, repositories or groups.

    3. Under Export Type, select Vulnerability Export.

    4. Click Generate.

    5. Check your email for the exported data, which will be sent to you in the .xslx format. If you cannot find the email in your inbox, check the SPAM folder.

    The exported data is divided into four columns:

    • Repository - A list of all your projects.

    • Total vulnerabilities - The total number of vulnerabilities found per repository.

    • Vulnerability priority - The number of vulnerabilities found with a CVSS rating of high or critical.

    • Review status - The current status set for each vulnerability. It can be either vulnerable, unexamined, paused snoozed or unaffected.

    SCA Premium & Enterprise
    Click here to upgrade.
    Create a new policy

    1. Go to Automations on the left side menu (you can also access automations for a specific repository by clicking Automate on the top right corner). 2. Click +New, then Create policy. 3. On the popup window add a name, repositories affected and select automation rules that should be part of your policy. 4. Click Save policy.

    Edit an existing policy

    1. Go to Automations on the left side menu (you can also access automations for a specific repository by clicking Automate on the top right corner). 2. Click the Policies tab. 3. Click … (three dots) for the specific policy and then click Edit policy. 4. On the popup window you can edit details such as the name, repositories affected and select automation rules that should be part of your policy. 5. Click Save policy.

    Start Left Policies
    Unable to access live chat

    To access our live chat or the Help widget in the tool, accept the Support and Functional cookies. These cookies are essential for specific support features, onboarding tools, service notifications, and more. For additional information about the cookies we use, refer to our Privacy Policy.

    OpenText Core SCA tool
    our website
    [email protected]

    Two-Factor Authentication (2FA)

    Learn how to enable or disable two-factor authentication.

    Two-factor authentication increases the security of your account by introducing a second authentication method.

    To manage 2FA:

    1. Hover on your name at the bottom of the left-side menu.

    2. Click User settings.

    3. Under Two Factor Authentication, select or deselect one or more options by ticking the corresponding checkboxes.

    Email authentication

    When this option is enabled, you will start receiving confirmation codes to your email upon login. From now on, every time you log in, you will be prompted to enter the code received in the emails.

    Google authenticator

    When this option is enabled, you will be required to approve your logins using the Google Authenticator app. To enable this option:

    1. Tick the corresponding checkbox under Two Factor Authentication. This will prompt a modal with a QR code to appear on your screen.

    2. Open the Google Authenticator app on your phone and scan the QR code. This will generate a single use code.

    3. Enter the code in the Verification code field in the tool and click Verify. From now on, every time you log in, you will be asked to enter the authentication code from your Google Authenticator mobile app.

    Manage payment methods

    Learn how to manage your payment methods.

    It is possible to add multiple credit/debit cards as payment methods. The first card you add is automatically set as the default payment method. Once another card is added, you will be able to select it as the default payment method instead.

    If possible, the default card is charged first. If unable to charge the primary card, the secondary card will be used instead.

    To add a new card:

    1. Go to Billing on the left side menu.

    2. Click Payment Methods.

    3. Click Add New.

    4. Select a method and enter the details.

    Access invoices

    See how to access your invoices.

    You can easily access all the past invoices for your account. To do so:

    1. Go to Billing on the left side menu.

    2. Click Billing History to access past invoices for your account.

    curl -X 'POST' \  'https://debricked.com/api/1.0/open/repository-settings/repositories/1337/select-use-case' \  -H 'accept: */*' \  -H 'Authorization: Bearer <token> \  -H 'Content-Type: application/json' \  -d '{ "useCase": 2 }'

    Linux package managers

    See a breakdown of the file formats and features supported in Linux.

    Apart from the various programming package management systems, OpenText Core SCA also supports package managers for various Linux distributions, allowing you to find and monitor potential vulnerabilities of your server or Docker container.

    To start tracking your server or Docker vulnerabilities, you should first execute your package manager(s) list command and redirect the output to a text file:

    • For Debian, Ubuntu and most derivatives, execute the following command:

    apt list --installed > apt.list
    • For Alpine Linux which is widely used by Docker containers, execute the following command:

    apk list --installed > apk.list

    To scan them for dependencies, the output file(s) should be either committed to the repository or manually uploaded.

  • Before updating the package, keep in mind some packages might introduce breaking changes. To see if there is any risk, check the Breaking Changes section of the package's readme file.

  • Update the package through the package manager (in this example, using npm: npm update hbs >= 4.1.1 )

  • Commit and push the updates.

  • Common Vulnerability Scoring System (CVSS)

    An open framework for describing the severity of vulnerabilities, where each vulnerability is given a score between 0 and 10, with 10 being critical.

    Common Weakness Enumeration (CWE)

    This is a weakness, either in software or in hardware, that may be exploited in a specific system. The CWE list is a tree hierarchy with different levels of abstraction. An example of a CWE tree chain, from high to low abstraction, may look like:

    "Improper Restriction of Operations within the Bounds of a Memory Buffer" (CWE-119) -> "Buffer Copy without Checking Size of Input" (CWE-120) -> "Stack-based Buffer Overflow" (CWE-121).

    Common Platform Enumeration (CPE)

    This is a naming scheme for IT systems, software, and packages. An example of a CPE string for the React framework, version 16, is:

    cpe:2.3:a:facebook:react:16.0.0:*:*:*:*:*:*:*.

    Node Package Manager (npm)

    A package manager for JavaScript consisting of a command line client npm, along with an online database of packages known as the npm registry. npm handles local dependencies, as well as global JavaScript tools. As of 2023, npm has joined forces with GitHub.

    National Vulnerability Database (NVD)

    An open database, managed by the U.S. government, for management of vulnerabilities. The information displayed is an aggregation of multiple sources along with a severity scoring using CVSS, the type of vulnerability as a CWE, and affected products as a CPE.

    Understanding security vulnerabilities - video series

    Have a look at the online course giving you an overview of security vulnerabilities and related topics. In this series, you will learn about:

    • Different types of security vulnerabilities

    • How to identify and mitigate them

    • Common attacks and how to protect your team from it

    Whether you are a beginner or an experienced developer or a security professional, this series is designed to help you enhance your knowledge of open-source security and keep your code secure.

    Check it out, improve your skills and stay ahead in the fast-changing world of technology.

    SBT

    OpenText Core SCA does not directly support scanning build.sbt files. However, SBT provides commands to generate a corresponding pom.xml file. This pom.xml file can be used to create a lock file, which allows OpenText Core SCA to analyze the complete list of direct and indirect dependencies along with their relationships.

    You can do this using the High-Performance Scans technology available in OpenText Core SCA CLI. By running the resolve command, the CLI will automatically detect any build.sbt files and use them to generate the needed maven dependency files. This is also run by default within the scan command.

    You can manually create the recommended file(s) by running the following commands and saving the output into a maven.debricked.lock file.

    Every maven.debricked.lock file should be placed in the same directory as the corresponding pom.xml file.

    File fingerprinting

    OpenText Core SCA offers the capability to scan for Scala dependencies that are not specified in manifest files through file fingerprinting. The OpenText Core SCA database includes the hashes of .jar and .war files, along with their unpacked contents, for all packages in the largest Maven repository. This information is used to compare with the contents of your application, ensuring the most accurate matches possible.

    For more information on file fingerprinting and how to set it up, see file fingerprinting.

    Supported file formats and features

    Package manager
    Supported file formats
    Root dependencies
    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    SBT

    file fingerprinting

    Install Select Plugin to Your Browser

    1. Go to this page or search for “OpenText Core SCA Select” in the Chrome Web Store.

    2. Click Add to Chrome.

    3. Review the permissions and click Add extension.

    1. On your browser, click Extensions and then the Pin emoji to pin it to your browser UI.

    1. You are ready to go. Navigate to a repository or a package manager's GitHub page to see OpenText Core SCA's Select Health data of the project in the popup.

    1. If you want to see more details about the project, click Check all metrics. This will take you to a page in OSS providing you with a comprehensive overview of the project.

    Access it here
    GitHub
    pypi
    nuget
    npm
    maven
    golang
    RubyGems
    Composer
    CocoaPods
    Cargo
    Conan
    Evaluate license issues using start left policies (example)
    1. Create an automation rule to evaluate the licenses family. For example, “If there is a dependency which is licensed under a strong copyleft license then fail pipeline”.

    2. Go to Open Source Select and search for a desired package.

    3. After searching for the `node-forge` package, you can see that the pipeline would fail if this package is included, as it is licensed under `GLP-2.0-only` which belongs to the "strong copyleft" licenses family.

    Evaluate security risk packages using start left policies (example)

    1. Create an automation rule to evaluate the check the CVSS. For example, "If a dependency contains a vulnerability which has not been marked as unaffected where CVSS is at least medium (4.0-6.9)”

    2. Go to Open Source Select and search for a desired package.

    3. After searching for the `angularjs` package, you can see that our pipeline would trigger a warning if we included this package, due to CVE-2017-16009.

    Choose open source components with OpenText Core SCA's open source select and start left - video guide

    Select Enterprise
    Click here to upgrade.
    You can also:
    • Click Quick Compare to see a comparison between the top three search results in the search page.

    • Click Compare next to Similar dependencies in the project page to compare those projects.

    Choose open-source components with OpenText Core SCA's open source select and start left - video guide

    Open Source Select

    Click User profile.

  • Click Delete account and confirm.

  • Getting started

    Learn how to complete your first setup with OpenText Core SCA.

    Running OpenText Core SCA

    Explore the different ways of running OpenText Core SCA.

    Language Support

    Check out the list of our supported languages.

    upcoming webinars
    our team
    our community
    Cover

    Learn how to integrate OpenText Core SCA with tools of your choice.

    Cover

    Learn how to set up Single Sign-On (SSO) with OpenText Core SCA through an Identity Provider of your choice.

    Cover

    Learn how to choose the right open source project from the get-go and make the most of our metrics.

    Cover

    Learn how to use OpenText Core SCA locally on your command line.

    Cover

    Integrate our service into your code, CI pipelines, and more.

    Cover
    Cover
    Cover
    Health Metrics

    Java & Kotlin - Gradle, Maven, Bazel

    This section provides a breakdown of the file formats and features supported in Java/Kotlin.

    OpenText Core SCA currently supports tracking Java or Kotlin dependencies using:

    • Gradle (using build.gradle and build.gradle.kts files)

    • Maven (using pom.xml files)

    • Bazel (using WORKSPACE and install.json files)

    • to detect dependencies not specified in manifest files

    Gradle

    To achieve the fastest and most accurate results, create a file containing the resolved dependency tree named .gradle.debricked.lock before scanning.

    This can be accomplished using the technology in . If you execute the resolve command, the CLI automatically identifies all manifest files that lack the recommended Gradle lock files and generates them as needed.

    You can create the recommended file(s) manually by running the Gradle dependencies command and saving the output in a gradle.debricked.lock file.

    Every gradle.debricked.lock file should be placed in the same directory as its corresponding build.gradle or build.gradle.kts file.

    Maven

    To achieve the fastest and most accurate results, create a file containing the resolved dependency tree named .maven.debricked.lock before scanning.

    This can be accomplished using the technology in our . If you execute the resolve command, the CLI automatically identifies all manifest files that lack the recommended maven lock files and generates them as needed.

    You can manually generate the recommended file(s) by running the Maven dependency:tree plugin and saving the output to a maven.debricked.lock file.

    Every maven.debricked.lock file should be placed in the same directory as the corresponding pom.xml file.

    Bazel

    OpenText Core SCA supports Java projects that utilize Bazel by scanning the WORKSPACE file format along with any Java file formats in use. To ensure fast and accurate scans, OpenText Core SCA recommends utilizing rules_jvm_external to generate an install.json file, which resolves and pins all indirect dependencies in a lock file.

    For more information on setting this up in your project, see .

    File fingerprinting

    OpenText Core SCA supports scanning for Java dependencies not defined in manifest-files through file fingerprinting. Our database contains the hashes of .jar and .war files as well as their unpacked contents for all packages in the largest maven repository. This is used when comparing with the contents of your application, to ensure as accurate matches as possible.

    For more information on file fingerprinting and how to set it up, see .

    Supported file formats and features

    Package manager
    Supported file formats
    Root dependencies
    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    *When building the knowledge base, the files are downloaded, unpacked and fingerprints are created for all file contents, except for certain excluded patterns. The fingerprints are created for the contents of each file. For example, OpenText Core SCA matches .dll files used in C# and .class files found within .jar files from Java, among others.

    CycloneDX SBOM

    This section provides a breakdown of the file formats and features supported in CycloneDX SBOM.

    OpenText Core SCA supports tracking dependencies in CycloneDX SBOM using files in JSON and XML formats.

    To ensure that OpenText Core SCA identifes the SBOM files as CycloneDX SBOMs, please name them using one of the following conventions:

    • .bom..json

    • .*cdx.json

    • .*cdx.xml

    • .bom..xml

    The specific features available for the SBOM will depend on the libraries included and the individual package managers used.

    Supported file formats and features

    Language
    Supported file formats
    Root dependencies
    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Rachability Analysis
    High Performance Scan

    *This is a native lock file format. Native lock file formats are the fastest formats to scan.

    Analyzing external SBOM files using OpenText Core SCA - video guide

    JavaScript - NPM, Yarn, Bower

    See a breakdown of the file formats and features supported in JavaScript.

    OpenText Core SCA now tracks JavaScript and TypeScript dependencies through:

    • NPM (using package.json and package-lock.json files)

    • Yarn (using package.json and yarn.lock files)

    • Bower (using bower.json files)

    • to detect dependencies not specified in manifest files

    OpenText Core SCA recommends committing the lock files to achieve the most accurate tracking, as these files include the specific resolved versions of both direct and indirect dependencies. If you only commit the package.json file, OpenText Core SCA will update all dependencies to the latest available versions based on the specified version constraints.

    If at least one supported file is committed to the repository, it will automatically be scanned for dependencies when you integrate with the CI/CD pipeline.

    Bower

    To achieve the fastest and most accurate results, create a file containing the resolved dependency tree before scanning. This can be accomplished using the technology in . By executing the resolve command, the CLI automatically identifies all manifest files that lack the recommended bower.debricked.lock files and generates them as needed.

    File fingerprinting

    OpenText Core SCA supports scanning for JavaScript dependencies not defined in manifest-files through file fingerprinting. The database contains the hashes of relevant files (including .js and .ts files) for all packages in the npm registry. This is used when comparing with the contents of your application, to ensure as accurate matches as possible.

    For more information on file fingerprinting and how to set it up, see .

    Supported file formats and features

    Package manager
    Supported file formats
    Root dependencies
    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    *This is a native lock file format. Native lock file formats are the fastest formats to scan.

    License risks

    See the different levels of open-source license risks.

    To grade the potential compliance risks involved with different licenses, we assess them using a grading system. Keep in mind that the color grading represents the estimated amount and complexity of the compliance concerns. This does not mean that some licenses are riskier than others - if you understand all the compliance requirements of a license and are able to fulfill them, then the license is practically risk-free regardless of our grading.

    The risk levels are created under the assumption that the installed dependency is not affected by external factors, including, but not limited to, interactions with other dependencies and effects of compilation. We advise you to adjust the risk levels based on your own internal policies, risk tolerance and use case.

    To read more about license families, license risks, use cases, and compliance - check out our blog.

    Ruby - RubyGems

    See a breakdown of the file formats and features supported in Ruby.

    OpenText Core SCA now tracks Ruby dependencies through RubyGems, using its associated Gemfile.lock files. If at least one of the supported files is committed to the repository, it will be automatically scanned for dependencies when integrated with OpenText Core SCA CI/CD pipeline.

    Supported file formats and features

    Package manager
    Supported file formats
    Root dependencies
    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    *This is a native lock file format. Native lock file formats are the fastest formats to scan.

    Proxy non-standard license identifiers

    Learn how OpenText Core SCA deals with non-standard and deprecated licenses.

    To ensure license compliance, we proxy non-standard license identifiers and references to SPDX identifiers and map deprecated license identifiers as accurately as possible. Below is a list of common deprecated licenses and how we proxy them:

    Full Name
    Deprecated License
    Proxy to

    GNU General Public License v1.0 only

    GPL-1.0

    GPL-1.0-only

    GNU General Public License v1.0 or later

    GPL-1.0+

    GPL-1.0-or-later

    If you have any further questions or need additional assistance, please refer to the or .

    Pull Requests (PR)

    Learn about the types of Pull Requests (PR) OpenText Core SCA supports and the actions triggered when PRs are generated.

    The goal of a Pull Request is to completely remove the CVE from the repository. Note that some dependency versions do not allow a safe version of the currently vulnerable dependency. Therefore, the pull request will only be generated if at least one of the affected direct dependencies has been updated to a safe version.

    OpenText Core SCA currently supports two types of pull requests:

    CVE-specific Pull Request

    The pull request creation depends on the nature of the dependency relations. If updating the lock file suffices to fix the vulnerable dependency, the pull request will contain the updated lock file. If an update to the direct dependency is required, OpenText Core SCA will apply the fix to the main dependency file containing the direct dependency versions. Afterwards, OpenText Core SCA will update the lock file with the new version of the direct dependency and its dependencies.

    When you generate a CVE-specific pull request, the following actions are performed to your repository and dependency files:

    • Generate the dependency updates in the dependency file to fix the CVE.

    • Make required changes to your dependency files as stated above.

    • Create a branch in the repository.

    • Push the remediated dependency files.

    Repository-specific Pull Request

    Repository-specific pull requests are a way of remediating vulnerabilities in bulk, with a single click of a button. Instead of focusing on remediating a specific CVE, OpenText Core SCA widens the scope to all CVEs that affect a specific repository. Currently, OpenText Core SCA only supports lockfile-only repository-specific pull requests. They are a quick way of making sure that your dependency files are up-to-date. These pull requests generate your lock file(s) from scratch in an attempt to update indirect dependency versions within given constraints. This will fix the majority of the CVEs in many cases. When generating a repository-specific pull request from the repository view, it will be based on the branch selected in the dropdown provided after clicking the Generate pull request button.

    When you generate a repository-specific pull request, the following actions are performed to your repository and dependency files:

    • Apply required changes to your dependency files as stated above.

    • Create a branch in the repository.

    • Push the remediated dependency files.

    • Create pull request to original branch.

    Lockfile-only fix

    The lockfile-only fix means that you can regenerate the lockfile in your repository and the vulnerability will be solved. You don't need to update the root dependency - rather you should reinstall the same version (for example: run yarn upgrade and get a new lock.file). This is used when the version constraints set by the root dependency allow for the safe version of the indirect dependency, but it has been a while since you did the install. Then, re-installing it will solve the problem.

    Branch selection

    The type of pull request being generated determines what the new generated branch will be based on. If you’re generating a bulk fix from the repository view, the branch will be based on the branch selected in the drop-down provided after pressing the Generate pull request button. If you're instead generating a pull request from the page of a specific CVE, the chosen branch will depend on a few factors:

    • If a default branch containing the CVE is detected in your repository, the pull request branch will be based on it.

    • If OpenText Core SCA is unable to detect a default branch, or the CVE exists in a branch other than the default one for that repository, OpenText Core SCA will first check if the CVE exists in the main or dev branch. If not, the branch which contains the latest commit in the repository is selected.

    For more information on how to solve a vulnerability using a PR in the web tool, click the below link:

    Automation

    Navigate one of OpenText Core SCA’s most powerful features - the Automation engine.

    In order to efficiently prevent vulnerabilities and unwanted licenses from entering your codebase, it is recommended to set up automation rules. The rules can be enforced in your pipelines, failing them or showing warnings, or set to notify relevant people, minimizing the number of vulnerabilities brought into your codebase.

    You can see an overview of all automations in your organization by clicking the Automations on the left side menu. Here, you can create new automation rules, as well as edit or disable/delete the existing rules.

    You can access automations for a specific repository by selecting a specific repository in the drop-down list.

    View logged events

    Learn about the events logged at OpenText Core SCA and how to view all of them.

    Keep in mind that only users with admin rights have access to the event logs.

    To ensure transparency, OpenText Core SCA logs almost all events across the service. This enables you to track everything that happens in your company account and manage various aspects of security, performance, and transparency.

    The logs can be accessed through OpenText Core SCA API, using the endpoints:

    /api/{version}/open/admin/request-logs/get-request-logs/api/{version}/open/admin/request-logs/get-events

    To get a list of event logs, simply call the get-request-logs endpoint with appropriate filters. Here is an example of a simple request, fetching all events:

    curl -X 'GET' \'https://debricked.com/api/1.0/open/admin/request-logs/get-request-logs?start=2021-05-10T15%3A52%3A01&page=1&pageSize=20' \  -H 'accept: application/json' \  -H 'Authorization: Bearer <token>

    In this case, a start date is specified, while the end date is not, which results in data on events from the start date, up to the current date and time. Since the endpoint is paginated, it is required to specify the pages and the page size.

    Here is an example of a response:

    The breadcrumbs list all the pages the user visited while using the tool. Note that the breadcrumbs are printed in reverse chronological order, that is, the latest event first and the oldest event last. The URLs in the breadcrumbs are relative to the event URL.

    Filters

    You can customize the logs by selecting additional filters, such as:

    • userEmail - Filter events performed only by a specific user.

    • url - Filter events only affecting a given URL. For example,

    • eventTypeId - Filter a specific event type.

    To filter the logs based on events and get a list of all event names and IDs, you can query the get-events endpoint:

    Here is an excerpt of the response from the example:

    Repository groups

    Learn how to group your repositories integrated with OpenText Core SCA.

    It can be difficult to get a quick overview of all your repositories, especially if you have a lot of them. To make your life a bit easier, the OpenText Core SCA tool enables you to group repositories together, allowing you to organize your projects, e.g. based on team structure.

    A group can consist of multiple repositories, but also other groups. It is also possible for one group to exist as a sub-group in multiple parent groups. Keep in mind that changes made to a group will have an effect in all places the group exists.

    You can create groups from the repository view under Repositories. To create groups:

    1. Go to Repositories on the left side menu.

    2. Click + New and select Group.

    3. On the New group window:

      1. Enter the Group name.

      2. Select the repositories for the group. You can associate multiple repositories to the group by selecting repositories from Choose repositories drop-down and creating new rows by clicking the plus button.

      3. Select the default branch for the repository. You can allocate default branch to the repository by selecting branch from

    4. Select the relevant Groups.

    5. Click Create.

    Once created, the group will be shown with the name and aggregation of vulnerabilities in the linked repositories and groups. You can also view the default branch details in the repositories tab of repo groups.

    'AUTO' is displayed only if the system has selected the default branch.

    Delete or edit a repository group

    You can edit or delete a specific group by clicking on the three dots next to the group’s name. Clicking Edit will open the same view as when creating the group, enabling you to select or deselect repositories or groups included in the group. Keep in mind that if you delete a group, all groups that exist solely within this group will also be deleted.

    Export repository group table data

    You can export the filtered and visible data in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the topic.

    Settings

    Explore Settings at OpenText Core SCA.

    Set up Reachability Analysis for Go

    Learn how to set up Reachability Analysis for Go.

    Reachability Analysis is supported for all Go projects. You need the compiled code and the libraries used by your Go project to enable Reachability Analysis.

    You need to generate a call graph to enable Reachability Analysis for Go. To generate a call graph, add the OpenText Core SCA CLI callgraph command to your integration before running a OpenText Core SCA scan. To find out more about the command and the various available flags, run:

    debricked callgraph -h

    The success of CLI call graph generation depends on the complexity of the application being analyzed. If an application contains a language feature that is not supported by the algorithm, the callgraph command fails and you cannot set up Reachability Analysis for that application.

    When successful, the callgraph command generates a debricked-call-graph file. This file is automatically sent to OpenText Core SCA with the dependency files for analysis, when running the debricked scan command.

    Set up call graph generation in your pipeline

    For many projects, running the callgraph command with the default configuration might be enough to run the preparation steps. In this case, before running the debricked scan, to add the command to run debricked callgraph in your configuration to ensure that the scan has access to the generated call graph file.

    For GitHub Action integrations, OpenText Core SCA must also add Actions setup that can be found in the .

    Example: Building the project during the callgraph command

    In this example, the callgraph command is run with default configuration to build the project and prepare the necessary files automatically before generating the call graph.

    Users

    Learn about ways of managing users with OpenText Core SCA.

    Delete company account

    See how to delete your OpenText Core SCA account.

    In order to delete your company account:

    1. Click Admin tools on the left side menu.

    2. Type your password.

    3. Go to the Company settings tab.

    4. Click Delete account and confirm.

    This will delete your company data, including all users connected to this account.

    Manage your commits

    Learn how to manage commits in your repositories.

    After creating several commits or adding a repository with existing commits, it might be important to be able to look back and see the history of the changes. To see a list of all your commits and manage them:

    1. Click Repository Settings on the left side menu.

    2. Go to the Commits tab.

    3. Click the repository you are interested in.

    In this view, you can find a list of all your commits, along with the details:

    • Name - The name of the commit.

    • Commit Date - The date and time the commit was created.

    • Repository - The repository the commit belongs to.

    • Branch - The branch the commit was added to.

    You can export the filtered and visible data in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the topic.

    Delete a commit

    If you decide you no longer want to see data from a specific repository and remove it, or if you revert a commit on your end, it might be useful to delete a commit from the list to clean up your data. To do so, click the trashcan icon on the far-right column.

    Retention time of commit data

    Unless you delete the commit data manually, non-default branches will be retained for 30 days, while default branches (main, master) have an unlimited retention period.

    Additionally, enterprise users can tag selected commits as a release by adding the flag --tag-commit-as-release=true to the scan command in OpenText Core SCA CLI. Storing the commit data indefinitely (they can still be manually removed).

    Set up Reachability Analysis for Java

    Learn how to set up Reachability Analysis for Java.

    To enable Reachability Analysis for Java, you need to generate a call graph. This can be done using the callgraph command, which can be added to your integration, so that it is generated appropriately before making a OpenText Core SCA scan. To find out more about the command and the various available flags, run:

    Reachability Analysis is supported for all Java projects using Maven. To produce a callgraph, OpenText Core SCA requires the compiled code for your project and access to the libraries it uses. By default, the command will attempt to do all the preparation work for the command to be successful. The success of the preparation depends on the specific project structure and configurations. In the event of failure, it is possible to configure the command not to run the preparation steps using the --no-build flag, and instead set it up separately before running the command.

    License risk management

    Master the art of managing open source licenses with OpenText Core SCA.

    When working with open source, it is crucial to ensure and maintain open-source compliance, also from a commercial perspective. To help with that, OpenText Core SCA provides you with a comprehensive overview of all licenses in the repositories you have integrated with us. You can find that information in different areas of the tool.

    View all licenses

    To view licenses, click License tab on the left side menu. Here, you can view the list of all your licenses in alphabetical order. The screen displays the following information:

    Monitoring

    Learn how to monitor vulnerabilities in repositories that are not updated regularly.

    OpenText Core SCA automation policies normally trigger based on pipeline events, such as committing a code to a repository. When the source code is committed, a OpenText Core SCA scan starts and automations run. However, in some cases, you might want to use automations to check the status of a repository even if you have not made any changes to it. For example, new vulnerabilities might be discovered for dependencies in repositories that are not updated regularly. Monitoring allows you to get timely warnings about issues in such repositories by automatically and periodically checking the rules regardless of pipeline events. It is possible to configure monitored automations to either result in webhooks or emails when triggered.

    To enable monitoring for a new rule, follow these steps:

    1. From a repository page, go to the Automations tab. On the Automations page, you can view the list of automation rules created.

    Overview

    Explore the data and snapshots you can find on the Overview page in the tool.

    Clicking Overview on the left side menu will take you to a dashboard allowing you to get a clear overview of all vulnerabilities found in your organization.

    Filters

    Security

    See how we define the Security metric in Project Health.

    The security of a repository is crucial in many aspects of open source, as the security of a project determines the security of your product. This metric measures both indicators of vulnerability entry risk, and past vulnerability response performance. Between each layer, there are weights that determine the impact of any given feature on a practice, and of any given practice on the . You can find the data model illustrated below:

    Vulnerability response

    This practice describes how fast vulnerabilities are being handled in a repository. A high score means that maintainers and contributors solve vulnerability risks in a timely manner.

    The following features of Vulnerability Response are measured:

    Default automation rules

    Find default automation rules already in place and learn how to customize or remove them.

    To make things easier for you, OpenText Core SCA has created a set of default rules that are activated on your first scan and applicable to all of your repositories. As an administrator, you are also able to disable existing default rules and can assign new rules to be added to integrated repositories by default.

    Keep in mind that once a rule is marked as default, it will be enabled for new repositories, even if it was disabled for existing repositories.

    Set a rule as a default rule

    Generate access token

    Learn how to generate an access token.

    Only users with administration rights can generate access tokens.

    Access tokens are a secure way of performing automated integrations with OpenText Core SCA. They are safer compared to using a username and password, and their typical use cases include GitLab, Bitbucket, and API integrations, which are not tied to a particular user, but rather to a repository or a project.

    To generate a new access token:

    Data sources

    Explore this section to discover the trusted sources of data.

    OpenText Core SCA's algorithms constantly scan various sources for information about vulnerabilities, licenses and health data. These include (but are not limited to: the NVD Database, NPM, C# Announcement, FriendsOfPHP's security advisories, Go Vulnerability Database, PyPA Python Advisory Database, GitHub Issues, GitHub Security Advisory, mailing lists, and more. OpenText Core SCA checks the sources every 15 minutes, giving fast and accurate data.

    Data refinement

    When the data is collected, it is cleaned up since it is often quite messy. As the sources are a combination of structured and unstructured data, there are a lot of errors in it by default.

    Reachability Analysis

    Here's everything you need to know about OpenText Core SCA’s Reachability Analysis.

    OpenText Core SCA currently supports the Reachability Analysis feature for Java and Go.

    OpenText Core SCA's Reachability Analysis helps you automatically determine if a vulnerability in a library affects your project. It analyzes which parts of the library are vulnerable and checks if your code uses those parts. To do this, OpenText Core SCA needs to understand how your open source dependencies are used. This information is collected by using OpenText Core SCA's CLI tool to generate a call graph for your project. For instructions on creating the required call graph, see how to .

    Search projects

    Learn how to search for an open source project using OpenText Core SCA’s Open Source Select.

    Finding the right open source project to solve your specific problem can be difficult, especially when you want to make informed decisions before choosing what to bring into your codebase. is OpenText Core SCA’s database of all open source projects available on GitHub. It enables you to search, compare and evaluate packages based on different health metrics and quality scores.

    How do i search?

    With Open Source Select, you can search for packages, projects or functionalities and get all relevant information presented in one place. You can further refine your search using filters.

    When searching, use a few good keywords describing what you're looking for. For example, try searching for “frontend graphs” if you're looking for a project to help you create nice-looking visualizations, or search for “message broker” if you're looking for data streaming projects.

    Manage users

    See how to manage a user account.

    In order to edit a user account:

    1. Go to Admin tools on the left side menu.

    2. Type your password to enter the administrative mode.

    3. In the Users tab, click the Edit (pen icon) next to the user.

    Set up a use case

    Learn how to set up a use case for your repositories.

    The first time you visit the License view; you will notice that the value in the risk column is set to Unknown for all licenses. This is because you have not yet configured any use cases for your repositories.

    To do that:

    1. Go to Repository Settings in the left side menu.

    2. Under the column Use case, click on Unknown in the row of the specific repository.

    Solve vulnerabilities using Pull Requests (PR)

    OpenText Core SCA offers several solutions to tackle open-source vulnerabilities. Learn how to do it using Pull Requests (PR).

    Assume there is repository with huge number of vulnerabilities. It will take time to go through each one of them and potentially fix them. OpenText Core SCA offers the ability to open a pull request to solve many vulnerabilities at once.

    Support for Pull Requests

    Currently, OpenText Core SCA only supports pull requests for certain package managers and integrations using the GitHub app, GitLab or Azure DevOps. For information regarding the support of your package manager, see the .

    Command Line Interface (CLI)

    Learn all about our Command Line Interface, which enables you to run vulnerability scans on your local machine and integrate OpenText Core SCA into your pipeline.

    The Legacy CLI has now been deprecated. By April 2nd 2024 using it will result in pipeline failures, and the scans will be completely turned off on May 2nd 2024. If you're interested in integrating with us using our CLI, please check out the documentation for . If you’re a user of the Legacy CLI, learn how to .

    // sbt makePomSome code
    mv target/scala-*/*.pom pom.xml
    mvn dependency:tree -DoutputFile=maven.debricked.lock -DoutputType=tgf
    Repository or Branch

    The data presented in the Overview can be filtered depending on your needs. The repository picker enables you to select either a specific repository/branch or all your repositories altogether. When an individual repository is selected a specific branch selector shows up to further narrow down your data. The All repositories view shows data from the sum of the default branches present in all repositories.

    Due to limitations, it is not always possible to identify the default branch except for GitLab users. For other users, the default branch can be identified if the branch name is either master or main. An effort is still made to identify your default branch correctly. This effort consists of looking for the branch with the most activity as it is assumed that, at least over time, this is the most interesting branch to look at.

    Time period

    The OpenText Core SCA API allows you to see data for any given interval. Keep in mind that for the period prior to the first snapshot, the data will be padded with 0 values. Since the snapshots older than a month are pruned, the intervals beginning over 30 days ago must have a two-week range.

    Vulnerability graph

    The main dashboard presents your organization’s historical data in the form of a graph. This view visualizes the total amount of vulnerabilities in selected repositories, grouped by severity. You can adjust the graph according to your needs, by changing the values in the repository/branch and time period pickers.

    License risk widget

    The bottom widget presents your current licence compliance risks, grouped by risk levels: critical, high, medium, low, and unknown. Keep in mind that this widget always shows you the current data, unaffected by the time period picker. You are still able to customize it by changing the selected repository/branch.

    Fixed vulnerabilities widget

    The left-side widget presents information about your recently fixed vulnerabilities, including:

    • The total amount of fixed vulnerabilities.

    • The number of vulnerabilities fixed over the time period selected with the picker.

    • A graph visualizing your fixed vulnerabilities over a time period.

    • A sorted list of fixed vulnerabilities, the vulnerabilities fixed most recently shown at the top. You can also find their severity and the date they were fixed on.

      • Click the name of the vulnerability to view the Vulnerability page.

      • Click the folder icon to open the repository where the vulnerability was found.

      • Click View More to view the complete list of fixed vulnerabilities in the currently selected scope.

    You can also:

    • Search the list of fixed vulnerabilities.

    • Customize this widget by selecting the repository or branch and time period, using the filters.

    Snapshots

    In order to accurately represent data in the overview, OpenText Core SCA periodically saves snapshots of the state of users' repositories. These snapshots contain the number of unknown-, low-, high-, and critical-severity vulnerabilities in a given repository. This evaluation is based on CVSS scores, with CVSS4 always taking precedence over CVSS3 and CVSS2. When a vulnerability does not have a CVSS score, it is assigned the unknown severity. The snapshots don’t record any other details about the vulnerabilities, only the quantity. They are created once per day and are updated upon each successful scan of a repository. Keep in mind that only snapshots coupled to the branch(es) being scanned will be updated.

    Pruning

    In order to limit the amount of data that has to be stored, OpenText Core SCA periodically prunes the snapshots. All Sunday snapshots are saved indefinitely, but the snapshots taken on other days are only retained for one month. That results in the resolution of the dashboard graph being drastically reduced for data older than one month.

    CVE-parsing

    The largest source of vulnerability data is the NVD database. The problem with this source is that the CPEs (or products connected to vulnerabilities) are often mislabelled, and it is common to see a time lag of up to four weeks in assigning CPEs to CVEs. OpenText Core SCA uses natural language processing to re-classify the vulnerabilities and increase the amount of correctly classified vulnerabilities and reduce that time lag to 0 days. This is one of many data-refinement activities that is carried out 24/7 for customers.

    Fully automated

    What distinguishes OpenText Core SCA is its innovative approach to vulnerability analysis, which eliminates the need for manual assessments. The automated analysis guarantees that once a vulnerability is detected within a data source, it is indexed, refined, and a solution is generated efficiently, all within 15 to 30 minutes.

    OpenText Core SCA provides continuous monitoring for changes related to specific vulnerabilities. Our systems operate around the clock to ensure that any detected vulnerabilities are promptly addressed by your development team, minimizing potential lag. OpenText Core SCA is committed to assisting you in establishing a strong and effective security framework.

    Scanning the code for dependencies and matching

    In the next step, OpenText Core SCA scans your projects for dependency files. This can be done in a variety of ways, for example, by CI/CD integrations (recommended), manual uploads, and OpenText Core SCA APIs.

    What does OpenText Core SCA look for?

    OpenText Core SCA essentially scans for any declared dependencies in files, such as the well-known package-lock.json, composer.json and so on. Next, this dependency file is transformed into OpenText Core SCA own internal format and is sent to the matching and rule engines. Any indirect dependencies are also built or traversed in this process.

    Matching and rule engines

    Following are the two pieces of software that:

    • Match your vendor and name of the dependency to OpenText Core SCA internal database

    • Determine the likelihood of this match being correct

    It is often the case that open-source projects have similar names, share parts of names, or even have the same names but different vendors. Hence, simple regular expressions, whitelists and blacklists are not enough. OpenText Core SCA makes use of modern tech, such as machine learning, to determine the likelihood of the match being a true positive or not based on OpenText Core SCA algorithms. The accuracy of these algorithms varies depending on the language and package manager being used.

    A solution to your problems

    In most cases, the solution to vulnerabilities in open-source dependencies is to simply update the dependency to a later version that is not vulnerable. Often the update is easy to make, but if the ga between the versions is large enough, an update could cause breaking changes to your code. We help you figure out which version to update to by finding the smallest possible update you can do, which still fixes the vulnerability, helping you fix the problem while keeping the risk of breaking changes as low as possible.

  • In the opened window, you can edit the data such as name, email, user role, status, and access scope.

  • To temporarily deactivate a user account, change their status from Active to Deactivated. To completely remove their account, click Delete user. Keep in mind that changing the role of a user can take up to an hour to take effect.

    Export user details

    You can export the filtered and visible user details in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the Export table data topic.

    build.sbt

    No

    Yes

    RubyGems

    Gemfile.lock

    Yes*

    RED

    High compliance risk, not allowed

    This grading is used for a license that is not allowed use, e.g. in company or project context, or for a use-case reason (such as with GPLv3 in consumer electronics) because it will likely cause a breach of the license terms, exposing you to possible legal challenges.

    RED

    Unknown license

    This grading applies to licenses where using the code without understanding its conditions may lead to legal risks.

    ORANGE

    Restricted license with substantial compliance risks. Such licenses should only be allowed after getting some legal guidance and on a case-by-case basis, as the compliance considerations are generally difficult to fully comply with.

    YELLOW

    Approved license, with sizable compliance considerations. In such licenses the source code must be made publicly available and there are restrictions in combining with other code under a different license, as with the licenses in the Copyleft license family.

    GREEN

    Approved license, with few compliance considerations. In such licenses the copyright and permission notice must be maintained in distributions of code, as with most licenses of the Permissive license family.

    BLUE

    Non-OSS / Commercial / Proprietary license

    Enable and disable snoozing vulnerabilities

    Supported language for OpenText Core SCA tool

    View logged events

    Two-Factor Authentication (2FA)

    User roles (freemium and premium)

    Role-Based Access Control (Enterprise)

    Manage users

    GNU General Public License v2.0 only

    GPL-2.0

    GPL-2.0-only

    GNU General Public License v2.0 or later

    GPL-2.0+ GPL 2.0+ GPL 2.0 GPL 2.0 or later GPL2 GPL2+ GPL2.0 GPL v2.0 License GPL v2.0 license. GPL version 2+ GPL+2 GPL2 License GPL2 or later GPL2.0 GPL2.0 License GPL2.0+ GPLv2 gplv2 GPL GNU v2 GPL General Public Licence v2 and later GPL (optional either v2 or any later version) GPL Lv2

    GPL-2.0-or-later

    GNU General Public License v3.0 only

    GPL-3.0 GPL-3-0-only GPL-3.0-only” GPL-3.0 (only)

    GPL-3.0-only

    GNU General Public License v3.0 or later

    GPL-3.0+ GPL 3.0 GPL 3.0 or later GPL-3-0-or-later GPLv03 GPL (ver 3) GPL-30 GPL-30.0 License GPL3 GPL3+ GPLv3.0 GPLv 3.0 GPLv-3 GPLv.3 GPLv03 gpl_V3 gpl v3 GPL GNUv3 GPL GNU-3.0 GPL GNU v3 GPL GNU 3.0 GPL Lv.3 GPL Lv3 GPL3v3 GPLb3+ GPLv3A

    GPL-3.0-or-later

    GNU Library General Public License v2 only

    LGPL-2.0

    LGPL-2.0-only

    GNU Library General Public License v2 or later

    LGPL-2.0+ LGPL 2.0 LGPL 2.0 license LGPL V.2 LGPL Version 2.0

    LGPL-2.0-or-later

    GNU Lesser General Public License v2.1 only

    LGPL-2.1

    LGPL-2.1-only

    GNU Lesser General Public License v2.1 or later

    LGPL-2.1+ LGPL 2.1 or later LGPL, version 2.1 LGPL v 2.1 LGPL v. 2.1 LGPL v 2.1+ LGPL ver 2.1 LGPL version 2.1 LGPL version 2.1 or later LGPL version 2.1, or (at your option) any later version

    LGPL-2.1-or-later

    GNU Lesser General Public License v3.0 only

    LGPL-3.0

    LGPL-3.0-only

    GNU Lesser General Public License v3.0 or later

    LGPL-3.0+ LGPL v3+ LGPL 3.0 or later LGPL Licence Version 3 LGPL-v3+ LGPLv3a

    LGPL-3.0-or-later

    SPDX documentation
    contact us

    Create pull request to original branch.

    Solve vulnerabilities using Pull Requests (PR)
    Overview
    License export
    Vulnerability export
    CycloneDX SBOM export
    Search projects
    Compare projects
    View more details
    Start left policies
    OpenText Core SCA select browser extension
    End of Life (EOL)
  • Vulnerability Disclosure to Patch - The median number of days it takes for a vulnerability disclosed by a CNA to be patched from its disclosure. This can be inverted if the patch was released before the disclosure date.

  • Vulnerability Entry to Disclosure - The number of days it takes for a vulnerability disclosed by a CNA to be discovered from when the vulnerable code was committed.

  • Security Activity over Time - The security activity in a project per month for the past year (whether it is a stable activity or comes in bursts).

  • Dead Issue Rate - The rate of stale or dead issues, defined as having been open for 52 weeks without being closed.

  • Maintainer Responsiveness - Indicates whether maintainers (contributors with merge rights) are responding to issues in the project. If they’re not responding to any recent issues, it may indicate that the project is going “stale”.

  • Vulnerability risk

    This practice looks into the nature of reported vulnerabilities in the project. The following features of Vulnerability Risk are measured:

    • Commits per Vulnerability - How frequently vulnerabilities are reported in relation to the project's size in commits. A higher number means vulnerabilities are less frequent.

    • Vulnerability Severity - How serious the reported vulnerabilities are.

    • CWE Diversity - The types of vulnerabilities being reported. Multiple vulnerabilities of the same type may indicate that the project's contributors are not learning from previous mistakes.

    Coding best practices

    This practice describes how well the project contributors adhere to best practices that boost code quality, which correlates with the risk of exposure to vulnerabilities.

    The following features of Coding Best Practices are measured:

    • Review Comments per Pull-request - The average number of review comments a pull request has, indicating how much feedback is provided by the reviewers.

    • Reviewers per Pull-request - The average number of reviewers per pull request before merge.

    • Pull-request Size - The average pull request size, measured in lines of code changed in the pull requests submitted during the past 52 weeks.

    • Seniority of Reviewers - How experienced the reviewers of pull requests are. Seniority is calculated as the average number of pull requests that a reviewer has on GitHub.

    Bug reporting

    This practice describes the rate of bug reports in the project. The following features of Bug Reporting are measured:

    • Issue Bug Saturation - The percentage of issues that are bug reports.

    • Commits per Bug - The frequency of bug issues per commit made.

    metric
    How does OpenText Core SCA know the vulnerable parts of libraries?

    OpenText Core SCA identifies vulnerable parts of libraries through the following steps:

    1. Fetch the relevant versions: Retrieve the latest vulnerable version and the first fixed version from OpenText Core SCA's database.

    2. Pinpoint the smallest change: Use information from various sources to narrow down to two specific versions — one that is vulnerable and one that is fixed. These versions can be released versions, Git tags, Git commits, or similar.

    3. Analyze code differences: Download the code for these two versions, identify the changes between them, and translate these changes into functions, classes, and other code symbols. Store this information in OpenText Core SCA's database.

    4. Identify vulnerable symbols: This process reveals which parts of the library are affected by a given vulnerability. These affected parts are known as vulnerable symbols for that vulnerability.

    Am I using vulnerable parts?

    To perform the analysis, OpenText Core SCA needs to know which parts of a library are vulnerable and whether your code uses those parts. This is determined by generating a call graph for your program and its libraries. The call graph is then uploaded along with your dependency files and scanned for the vulnerable symbols identified in the previous step.

    • If vulnerable symbols are found: This indicates that your code uses the parts of the library affected by the vulnerability, meaning your project is likely at risk.

    • If vulnerable symbols are not found: This suggests that your code probably does not use the vulnerable parts and is less likely to be affected.

    Important: Call graphs do not have perfect recall or accuracy. They might include calls that cannot actually occur or miss calls that can. Therefore, even if OpenText Core SCA reports that you are not using the vulnerable function, you should still upgrade the dependency—though it might not need to be your highest priority.

    Examples

    For projects using Netty versions between 4.1.0 and 4.1.43, OpenText Core SCA's public vulnerability database identifies the following vulnerabilities:

    • CVE-2019-20444

    • CVE-2019-20445

    • CVE-2020-11612

    However, not all of these vulnerabilities may affect your project:

    • CVE-2019-20444 and CVE-2019-20445 impact the web server component of Netty.

    • CVE-2020-11612 affects decompression functionality.

    If your project does not use Netty for decompression, CVE-2020-11612 will not pose a risk. In this case, upgrading to version 4.1.44 instead of 4.1.46 might be sufficient. Similarly, if your project does not use the web server part of Netty, an upgrade might not be necessary at all, saving significant time and resources. However, it is still recommended to upgrade to a safe version, even if the priority may be lower when vulnerable symbols are not in use. Normally, determining this would require manual investigation, involving a deep understanding of both your project and Netty, as well as reviewing CVE specifications to find which parts of Netty are affected. With OpenText Core SCA's Reachability Analysis, this process is fully automated.

    Different statuses of OpenText Core SCA Reachability Analysis

    In the tool, a vulnerability can have one of the following Reachability Analysis statuses:

    • Found: The vulnerable functionality was detected as reachable through your code.

    • Not Found: The vulnerable functionality was not detected as reachable through your code.

    Note: As mentioned earlier, call graphs do not have perfect recall or accuracy. It is still recommended to upgrade the dependency eventually, even if this status is shown.

    • Missing data: There is not enough information available to determine if the vulnerable functionality is reachable.

    • Unknown: The analysis was not run for this commit and vulnerability.

    Set up Reachability Analysis for Java
    Solve multiple vulnerabilities using a Pull Request

    Following are the steps for to solve multiple vulnerabilities:

    1. In a repository, click Generate pull request to let the tool update your dependencies, solve vulnerabilities, and create a pull request.

    2. Click View generated fix to view the pull request.

    3. When the pull request is merged, you will notice a decrease in the number of vulnerabilities.

    Set a commit message

    Once you click the Pull Request button, a new modal is displayed where it is possible to set your own commit message. If you choose not to provide a message, by default the message will be "Fix CVE-XXX" or "Bulk fix vulnerabilities", depending on the type of Pull Request that is created.

    Solve a single vulnerability using a Pull Request

    It is possible to solve a specific vulnerability in a repository using pull requests, instead of multiple CVEs at once as in the example above.

    Following are the steps to solve a specific vulnerability:

    1. In a repository, click the specific vulnerability you wish to remediate.

    2. In the CVE view, click the Open pull request button. You can see the vulnerable version(s) and the proposed change.

    3. Click Confirm to execute the changes.

    If a pull-request is made, creating a new branch, this branch can be viewed in the web tool. If the pull-request is rejected and the branch is deleted, the branch can still be viewed in the UX. This is the case even after a re-scan of the repo, since the branch is still in the database. This data will be pruned only after 30 days.

    language support page

    Added by - The user by whom the commit was added.

    Export table data

    Create an automation rules

    Edit an automation rule

    Default automation rules

    Set up webhooks

    Policies

    Monitoring

    Default branch
    drop-down in each row only if a repository is selected in that row. This option is disabled if you select multiple repositories in a row. If you do not manually select the default branch, the system will automatically choose it based on the last commit.
    Export table data

    Manually upload a dependency file

    Learn how to upload a dependency file manually.

    Keep in mind that this feature is accessible only to account admins.

    If you want to get the most out of OpenText Core SCA tool, setting up an integration is the preferred way of working with your repositories.

    However, if you want to test a specific dependency file for vulnerabilities, you can do so by manually uploading the file(s):

    1. Go to Repository Settings on the left side menu.

    2. Click Manual scan on the top right area of the table.

    3. Upload the file(s) you want to scan.

    4. Click Start scan.

    5. Once the scan is completed, click View results to see all discovered vulnerabilities.

    This action will create a repository named "[email protected] - <date>" and will add this scan as a commit within a repository.

    Yes

    NPM

    package.lock.json

    Yes*

    Yarn

    package.json

    Yes

    Yarn

    yarn.lock

    Yes*

    Bower

    bower.json

    Yes

    -

    fingerprinted files (.js, .ts and more**)

    -

    NPM

    file fingerprinting
    High Performance Scans
    OpenText Core SCA CLI
    file fingerprinting

    package.json

    Gradle

    build.gradle.kts

    Maven

    pom.xml

    Bazel

    WORKSPACE

    Bazel

    install.json

    -

    fingerprinted files (.jar, .war, pom.xml and more*)

    Gradle

    File fingerprinting
    High Performance Scans
    OpenText Core SCA CLI
    High Performance Scans
    OpenText Core SCA CLI
    Bazel blog
    file fingerprinting

    build.gradle

    {  "page": 1,  "found": 2,  "requestLogs": [    {      "user": "[email protected]",      "event_name": "Created pull request",      "event_id": 2,      "url": "https://debricked.com/vulnerability/1/repository/2/commit/3/pull-request/generate",      "breadcrumbs": [],      "ip_address": "256.139.13.37",      "timestamp": "2021-11-06 19:45:14",      "method": "GET",      "status_code": 200    },    {      "user": "[email protected]",      "eventName": "Visited repository page",      "eventId": 44,      "url": "/app/en/repository/24",      "breadcrumbs": [          {              "url": "../repositories",              "text": "Repositories"          },          {              "url": "",              "text": "owner/dependencies-relations-mess"          }      ],      "ipAddress": "256.139.13.38",      "timestamp": "2021-11-30T12:53:05",      "method": "GET",      "status_code": 200    }  ]}
    https://debricked.com/app/en/vulnerability/6552
    GitHub Actions repository
    Set up call graph generation in your pipeline

    When successful, the callgraph command will generate a debricked-call-graph file that is automatically picked up when running the debricked scan command and sent to OpenText Core SCA, together with the dependency files, for analysis. For many projects, it will be possible to run the default configuration of the callgraph command, doing the preparation steps as part of the command. In this case, all that is needed is to add running debricked callgraph in your configuration, before running the scan, ensuring that the scan has access to the generated call graph file. For GitHub Action integrations, there is also Actions setup that can be found in the GitHub Actions repository.

    If the build step of the callgraph command fails, or if you are already building the project in a previous stage of the pipeline, it’s highly recommended to build the project separately before running the callgraph command with the —no-build flag. Just make sure that the files resulting from the build are included in the stage where call graph generation is run.

    The examples below use a OpenText Core SCA CLI docker image to ensure that there is a compatible maven version included for the commands to succeed. OpenText Core SCA recommendation is that you incorporate the scan and callgraph commands in your build image/steps whenever possible, to ensure that versions of the underlying tools correlate with your environment.

    Example: Building the project during the callgraph command

    In this example, the callgraph command is run with its default configuration, which builds the project and prepares the necessary files automatically before generating the call graph.

    Example: Using a separate build step

    The example below is using maven to build the project and generate the files needed for call graph generation. The generated files must be reachable in the stage where the callgraph command is run, so that it has all pre-requisites to be run successfully.

    Common issues

    Multiple issues can occur when trying to generate the callgraph which prohibits success. Some common issues are:

    • Unsupported Java version. If your project requires a Java version older than 11, Debricked may not be able to produce a callgraph. Debricked may also not be able to generate a callgraph if your project uses new lanugage features from a version above 21.

    • Unsupported language features. Some advanced language features can make callgraph generation impossible for the tool that is used to generate the callgraphs.

    OpenText Core SCA CLI

    Go to Automation on the left side menu. Here, you can create new automation rules, as well as edit the existing rules

  • Click Default rule.

  • In the confirmation modal, select whether the rule should be activated for only newly integrated repositories or existing repositories as well.

  • Click Confirm. From now on, only newly integrated repositories will be affected by your default rule.

  • This can also be done when creating or editing an automation rule:

    1. Click New+ to create a rule OR Edit rule in an existing rule.

    2. Tick the Default rule checkbox.

    3. Click Save. From now on, newly integrated repositories will be affected by your default rule.

    Remove a rule as a default rule

    1. Go to Automation on the left side menu. Here, you can create new automation rules, as well as edit the existing rules.

    2. Click Default rule.

    3. On the confirmation modal, click Go ahead. From now on, newly integrated repositories will no longer be affected by your default rule.

    Disable default automation rules using API

    You can disable these rules through our API to create your own custom policy.

    The default rules can be accessed through the endpoint:

    api/1.0/open/admin/user/default-rules-enabled

    You can check the current status of your default rules:

    The response will show you “true” if the default rules are enabled and “false” if they are disabled, e.g.:

    You can change the current status using “enabled”:true and “enabled”:false. Here’s an example of how to disable it:

    Once you disable the default rules using the API, the automation rules will not trigger when a new repository is added to your account. Remember to set up your own rules to optimize your use of OpenText Core SCA tool.

    gradle dependencies > gradle.debricked.lock
    mvn dependency:tree -DoutputFile=maven.debricked.lock -DoutputType=tgf
    curl -X 'GET' \  'https://debricked.com/api/1.0/open/admin/request-logs/get-events'   -H 'accept: application/json' \  -H 'Authorization: Bearer <token>
    [  {    "eventId": 17,    "eventName": "Added comment"  },  {    "eventId": 7,    "eventName": "Added token"  },  {    "eventId": 16,    "eventName": "Changed review status"  },  {    "eventId": 14,    "eventName": "Changed the use case"  },  {    "eventId": 26,    "eventName": "Changed user settings"  }]
    # GitLab CI/CD template
    
    image: debricked/cli:2-resolution-debian
    
    stages:
      - scan
    debricked:
      stage: scan
      script:
        - debricked callgraph
        - debricked scan
    debricked callgraph -h
    # GitLab CI/CD template
    
    image: debricked/cli:2-resolution-debian
    
    stages:
      - scan
    debricked:
      stage: scan
      script:
        - debricked callgraph
        - debricked scan
    # GitLab CI/CD template
    
    image: debricked/cli:2-resolution-debian
    
    stages:
        - build_project
        - scan
    
    scan_preparation:
      stage: build_project
    
      script:
        # Build project based on the root pom.xml. If no root pom.xml is found, all pom.xml files will be built individually.
        - mvn package -q -DskipTests -e
    
      # Save class files from the target/ folder for use in the next stage.
      artifacts:
        expire_in: 1 day
        paths:
          - target/
    
    debricked-scan:
      stage: scan
    
      script:
        - debricked callgraph --no-build
        - debricked scan
    curl -X 'GET' \  'https://debricked.com/api/1.0/open/admin/user/default-rules-enabled' \  -H 'accept: */*' \  -H 'Authorization: Bearer <token>'
    {    "defaultRulesEnabled": true}
    curl -X 'PATCH' \  'https://debricked.com/api/1.0/open/admin/user/default-rules-enabled' \  -H 'accept: */*' \  -H 'Authorization: Bearer <token>' \  -H 'Content-Type: application/json' \  -d '{  "enabled": false}'

    Yes*

    CycloneDX SBOM

    bom.json, cdx.json

    Name: The name of license.

  • License Risk - The grade of potential compliance risks involved with the specific license, assessed based on the use case chosen for the repository.

  • Dependencies - The number of dependencies affected by the license.

  • License family - The family to which the license belongs.

  • View all repositories affected by license

    To view all repositories affected by license, follow these steps:

    1. Click License tab on the left side menu. Here, you can view the with a list of all your licenses in alphabetical order.

    2. Click a specific license to view all repositories with that specific license. Here, you can also view the risk associated with the license within all affected repositories, as well as how many dependencies per repository are affected.

    3. After you click a specific repository, the above-mentioned information can also be found in the Licences tab.

    You can export the filtered and visible data in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the Export table data topic.

    License review or override

    This feature is only available for Enterprise users.

    As a Repository or Company Admin (Enterprise), you can review and manually override the license found by OpenText Core SCA on a dependency level.

    To do so:

    1. From a repository page, go to the License tab. Here you can view the list of all licenses detected in the repository.

    1. Click Review. Here, you can find a list of all licenses detected and can override the data.

    Depending on your needs, you can:

    • Delete the license by clicking the trashcan icon.

    • Change the detected license, by clicking Change license and selecting a new one from the dropdown menu

    • Add license(s) by clicking the + button for multi-licensing.

    On the Automations page, click New -> Add rule. The Add a new rule page is displayed.

    1. On the Add a new rule page, select the valid vulnerability condition from the drop-down. The vulnerability condition must be either 'CVSS' or 'discovery date' or both.

    2. Select the valid trigger events from the drop-down. The trigger events must be either 'notify by email', 'notify user groups by email' or 'trigger webhook'.

    3. Click Enable monitoring check box to enable the monitoring for the rule.

    4. Click Generate rule and review any warnings (if applicable).

    5. Click Save.

    When the monitoring is enabled for a rule, on the Automations page, you can view the icon next to the rule.

    To enable monitoring for an existing rule, follow these steps:

    1. From a repository page, go to the Automations tab. On the Automations page, you can view the list of automation rules created.

    2. Click the … (three dots) on the right-hand side of the rule.

    3. Select Edit rule.

    1. On the Edit rule page, select the valid vulnerability condition from the drop-down. The vulnerability condition must be either 'CVSS' or 'discovery date' or both.

    2. Select the valid trigger events from the drop-down. The trigger events must be either 'notify by email', 'notify user groups by email' or 'trigger webhook'.

    3. Click Enable monitoring check box to enable the monitoring for the rule.

    4. Click Generate rule and review any warnings (if applicable).

    5. Click Save.

    To filter the rules, follow these steps:

    1. From a repository page, go to the Automations tab. On the Automations page, you can view the list of automation rules created.

    1. On the Automations page, click filter. The Filter by page is displayed.

    1. On the Filter by page, select the appropriate values to filter the rules. You can filter the rules based on:

      • Activation: The values are 'Active' and 'Inactive'.

      • Action: The values are 'Fail pipeline', 'Pipeline warning', 'Notify by email', 'Mark as unaffected', 'Flag as vulnerable' and 'Trigger webhook'.

      • Monitoring: The values are 'Enabled' and 'Disabled'.

      • Default rules: The values are 'Default rules' and 'Non default rules'.

    Go to Admin tools on the left side menu.
  • Type your password to go to administrative mode.

  • In the Access Tokens tab, click the +Create button.

  • Type the description. If needed, select the Admin box which gives access to more actions, such as performing scans.

  • Click Generate.

  • Copy the generated token.

  • To generate a new access token for an Enterprise:

    1. Go to Admin tools on the left side menu.

    2. Type your password to go to administrative mode.

    3. In the Access token tab, click the +Create button.

    4. Type the description.

    5. Select the repositories and user roles from the drop-down.

    6. Click Generate.

    7. Copy the generated token.

    Save the token before closing the window as you can only view this token once.

    Export access token details

    You can export the filtered and visible access token details in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the Export table data topic.

    Token access scope

    Freemium & Premium

    For 'Freemium' and 'Premium' accounts, the following two access scopes are available:

    • Admin tokens - Always give access to all repositories, both already existing and those created in the future.

    • User tokens - When creating a token, the new token gets User access (equivalent to Reviewer in RBAC) to every existing repository at the time of token creation.

    Enterprise (with Role-Based Access Control (RBAC))

    For Enterprise accounts, the access scope of access tokens can be configured granularly with different scopes for individual repositories. The access granted by the various scopes is equivalent to that provided by our RBAC user roles.

    For repositories created or integrated after the generation of the token, access will be based on the default role, which can be configured by a company admin.

    For more information on the available user roles, their access and how to set the default role, see Role-Based Access Control (Enterprise).

    Search on project names

    Enter the name of the project you wish to know more about and hit enter. A list of projects matching the search string fully or partially will be shown.

    Search on project functionality

    As a developer you often know the problem you want to solve, but not necessarily all projects that exist to address that problem. Searching for the functionality that you're after helps you discover these projects.

    Search for repositories

    Open Source Select isn't limited to packages, it is also possible to search for repositories using the repository_owner/repository_name format. Keep in mind that the results from this query can be both dependencies that are repository-only, and dependencies that have a package and hold their code in the searched repository.

    Search using pURL standard

    It is also possible to search for dependencies using the common pURL format:

    The type section of the pURL corresponds to the package manager used by the dependency or the version control system used (in case of repository-only dependencies).

    The namespace is used mainly for repository-only dependencies, corresponding to the repository owner.

    The name section corresponds to the package or repository’s name.

    The pURL standard is also supported directly in the url: https://debricked.com/en/select/package/{purl}

    Here are some examples of pURL searches and their corresponding results:

    pkg:pypi/tensorflow → Tensorflow

    pkg:npm/react → React

    pkg:github/debricked/debricked-cli → Debricked-cli

    Refine your search using filters

    The most powerful way to search the Select database is by combining project name or project functionality searches with filters narrowing down the results to your preferences.

    You can filter by:

    • programming language

    • package manager

    • excluded licenses

    Choose open source components with OpenText Core SCA's open source select and start left - video guide

    Open Source Select

    In the new window, select a use case and click Save. The license view will be updated accordingly.

    Integrations
    SSO Integration
    Open Source Select
    OpenText Core SCA CLI
    OpenText Core SCA APIs
    OpenText Core SCA CLI
    migrate to the OpenText Core SCA CLI

    Snooze or pause a review status

    Learn how to snooze or pause a vulnerability you’ve been notified about.

    You can flag a vulnerability as snoozed for a set amount of time. By doing so, the specific vulnerability will not be triggered in any automation rules for the specific repository. After the chosen snooze duration expires, your automation rules will again take the before snoozed vulnerability into account and respective actions will be triggered again.

    This could result in unnoticed security issues because the vulnerability will not show up in your existing automations. Therefore, use this feature only if you need to and are aware of the consequences.

    Snooze a vulnerability for a set amount of time

    To snooze a vulnerability:

    1. Go to the vulnerability page.

    2. Click Pause rule triggering in the Action section.

    1. Select Snooze for a set time period in the newly opened dialog and select your desired snooze period.

    1. Click Save to confirm your selection and snooze the automation rules for the vulnerability.

    You can see the activated snooze being shown as review status under Action. Snoozing the vulnerability is also reflected in the Activity section at the bottom of the page.

    Note: Setting the vulnerability to "snoozed" is only available on a per-repository basis. If you want to snooze the same vulnerability for another repository, you should repeat the same steps for that one.

    Though any user is able to choose "snoozed" as review status by default, as an admin, you can disable this feature for all users in your company.

    Manually remove a snooze from a vulnerability

    You can manually stop snoozing a vulnerability at any time before it resumes automatically:

    1. Go to the vulnerability you want to resume.

    2. Click Snoozed for (time) and confirm that you want to stop snoozing the vulnerability in the displayed dialog. Note that this will enable automation rules to be triggered for this vulnerability again.

    Pause review status

    You can flag a vulnerability as paused in a specific repository. The vulnerability will stay paused until a fix is found, if applied, resolves the vulnerability in your repository. In that case, the paused status will be removed automatically, and the vulnerability resumes to being unexamined.

    Keep in mind that the pause could potentially be indefinite when a fix is never found. It is recommended to choose a maximum pause time when setting this review status. If the pause duration expires before the fix is found, your automation rules will resume taking the vulnerability into account. This is similarl to how snoozing a vulnerability works.

    Pause a vulnerability until a fix is available

    To pause a vulnerability until a fix is available:

    1. Go to the desired repository and vulnerability to pause.

    2. Select Pause rule triggering in the Action section.

    3. Select Pause until a fix is available in the opening dialog and choose an appropriate max pause time.

    4. Click Save to confirm your selection and pause automation rules for the vulnerability.

    You can see the activated pause being shown as review status under Action. Pausing the vulnerability is also reflected in the Activity section at the bottom of the page.

    Note that setting the vulnerability to "paused until a fix" is available does so only for the specific repository. If you want to pause the same vulnerability for another repository, you will have to repeat the same steps for that one.

    Manually remove a pause until a fix is available from a vulnerability

    You can manually stop pausing a vulnerability at any time before a fix is found or the max pause time has expired.

    To manually remove a pause:

    1. Go to the vulnerability you want to resume.

    2. Click Paused until fix and confirm that you want to stop pausing the vulnerability in the displayed dialog. Be aware that this will enable automation rules to be triggered for this vulnerability again.

    License export

    Learn how to create a License Export.

    This feature is only available for SCA Premium & Enterprise users. Already have an account? Click here to upgrade.

    Knowing what kind of licenses you have imported through your dependencies is crucial, as failing to comply with open-source licenses puts you at legal risk. OpenText Core SCA allows you to make an export with all licenses and the affected repositories. This enables you to let relevant stakeholders get an easy overview of the state of compliance and keep track of your progress over time.

    Generate a license export

    1. Click Generate Export on the top right corner of the page.

    2. Select the scope of the export as wither global, repositories or groups.

    3. Under Export Type, select License Export.

    Depending on the selected scope, you might receive three different types of exported data:

    all_licenses.xlsx

    The excel sheet is divided into three columns:

    • License - The name of the license.

    • Repositories - The name of the repository using that license, the latest commit hash, and the creation date of that commit.

    • License family - The name of the license family.

    licenses_per_repo.xlsx

    The excel sheet contains the name of the repository in the first row, divided into five columns:

    • Dependency - The name of the dependency.

    • Dependency id - The ID number of the dependency.

    • License - The name of the licenses used by the dependency.

    • Version - The version of the dependency.

    licenses.xlsx

    The excel sheet contains the name of the license in the first row, divided into two columns:

    • Repositories - The name of all the repositories using that license.

    • Dependencies - The name of all the dependencies using that license per repository.

    CycloneDX SBOM export

    Learn how to create a CycloneDX SBOM Export.

    This feature is only available for SCA Enterprise users. Already have an account? Click here to upgrade.

    What is CycloneDX?

    CycloneDX, developed by the Open Web Application Security Project (OWASP), is an open common standard for communicating SBOM information, a data format.

    Dependency relations

    In the dependencies array, you can find a reference number (ref) for each component and an array of each direct dependency of that dependency (depends_on). The roots of the relational trees will reference to the files in the project, together with the direct dependencies that it contains. By traversing the dependencies array, it is possible to build the entire dependency tree.

    In example below, you can see the direct dependency `webpack:4.28.4` depending on `terser-webpack-plugin:1.2.1` which in turn depends on `terser:3.14.1`.

    Here is how this would be visualised in the user interface:

    Root fixes

    Under Recommendation, you can find information about the first version of the specific vulnerable dependency that is safe, as well as the first version of the root or direct dependency that does not contain a vulnerable version of the indirect dependency. See example below:

    Change your password

    See how to change your password.

    A strong password is an easy and effective way to protect your account.

    To change your password:

    1. Hover on your name at the bottom of the left-side menu.

    2. Click User profile.

    3. Under Personal settings, type your new password and verify using your current one.

    4. Save the changes.

    C# - Nuget, Paket

    See a breakdown of the file formats and features supported in C#.

    OpenText Core SCA currently supports the tracking of C# dependencies through:

    • , using .csproj, packages.lock.json and packages.config files

    • , to find dependencies not defined in manifest-files

    Contributors

    See how we define the Contributors metric in Project Health.

    Open-Source projects are affected by contributors. Theyhave the power to make a project thrive or die. When deciding what open source project to bring into your software, it is important to inspect and analyze its contributors.

    Between each layer, there are weights that determine the impact of any given feature on a practice, and of any given practice on the . You can find the data model illustrated below:

    Contributor experience

    This practice describes the contributor's experience in a specific repository. Experienced contributors tend to write more efficient, more secure, and usable code, and are therefore preferred.

    SBOM export

    Learn about SBOM export reports.

    This feature is only available for enterprise users. Already have an account?

    What is an SBOM?

    A Software Bill of Materials (SBOM) is a record of the supply chain relationships between the components used when creating software. The record lists all components of a product, including all open source software, which can be helpful for both the developers and other stakeholders, such as investors and legal teams.

    User roles (freemium and premium)

    Understand the distinct functions and permissions of each user role.

    You can assign user roles to customize the way you and your organization work. For customers, there are two user roles available, admin and user.

    Here are all the actions available for each user role:

    Action
    Admin
    User

    Repositories

    See how to manage your repositories.

    Manage your repositories

    1. Click Repository Settings on the left side menu.

    Create an automation rule

    Learn how to create an automation rule for your repositories.

    1. Go to Automations on the left side menu (You can also access automations for a specific repository by clicking the Automate button on the top right corner).

    2. Click the +New button, then +New rule.

    3. Select the repository(s) you want the rule to be applied to.

    Go - Go Modules, Go Dep, Bazel

    This section provides a breakdown of the file formats and features supported in Go.

    OpenText Core SCA supports tracking Go dependencies through:

    • Go Modules, using go.mod files

    • Go Dep, using gopkg.lok files

    • Bazel, using WORKSPACE

    SPDX SBOM export

    Learn how to create a SPDX SBOM Export.

    This feature is only available for users. Already have an account?

    What is SPDX?

    SPDX is an open standard for communicating software bill of material information, including provenance, license, security, and other related information. SPDX reduces redundant work by providing common formats for organizations and communities to share important data, thereby streamlining and improving compliance, security, and dependability.

    Administration

    Here's everything an admin needs to know, from team onboarding to setting up OpenText Core SCA for a smooth workflow.

    Manage your subscription

    Learn how to manage your OpenText Core SCA subscription.

    Cancel your subscription

    If you are not satisfied with the current premium offering, you can .

    To cancel your premium subscription:

    1. Go to Billing

    Add a new user

    Learn how to add new users to your company account.

    Add a new user to your company

    1. Go to Admin tools on the left side menu.

    pkg:type/namespace/name
    Check your email for the exported data, which will be sent to you in the .xslx format. If you cannot find the email in your inbox, check the SPAM folder.

    Direct/Indirect - The type of the dependency, which can be listed as "D = Direct", "I = Indirect" and "? = undefined".

    Type your password to enter the administrative mode.
  • In the Users tab, click +Invite.

  • Type the email addresses (followed by a space or comma) of people you wish to invite, and set applicable roles.

  • Click Send invite to complete the process.

  • Every invited user receives a message with an invitation link sent to their email. To complete the registration, click on the link in the email and follow the process. In this step, you are also able to adjust your username and set a password. Keep in mind that the invitation link is only valid for 2 weeks since its creation. It might take a few minutes before you receive the email. If the email is missing, make sure to check the SPAM folder before reaching out to the Support team.

    New user setup

    Once an invitation has been sent, the new user(s) will be visible under the Users tab in Admin Tools, where you can find their information and current status. Hover over the User status field to see the expiration date of the invite link.

    You are also able to filter the users by their user status by clicking Filter.

    If the user has not accepted the invitation yet and their status is set to either Invitation sent or Invitation expired, click the three dots (...) to:

    • Delete user - This will cancel the invitation.

    • Resend invite - This will send out a new invitation, thereby updating the expiration date by another two weeks.

    OpenText Core SCA CLI
    Legacy CLI
    The following features of Contributor Experience are measured:
    • Contributor Influence - How much attention the contributors attract to the repository.

    • External Pull Requests Merged per Developer - The average number of pull requests merged in other projects.

    Contributor efficiency

    This practice describes the contributor efficiency in a specific repository. It is measured by looking at the rate at which the contributors code, merge pull requests, and close issues.

    The following features of Contributor Efficiency are measured:

    • Closed Issues per Developer - The average number of issues closed per developer in the past 52 weeks.

    • Pull Requests Merged per Developer -The average number of pull requests merged per developer in the past 52 weeks.

    • Developer Velocity - The average coding speed of the developers. It is calculated as lines of code merged/closed per week, averaged over the past 10 weeks.

    Contributor diversity

    This practice describes the diversity in the contributing community for a specific repository. It is measured by looking at the rate of new contributors, the rate of contribution per contributor, the total number of contributors, and the contributor trend.

    The following features of Contributor Diversity are measured:

    • Total Contributors - The total number of contributors.

    • Contributor Trend - The change in contributors, averaged over 10 weeks.

    • New Contributors - How many new contributors (with their first merged pull request within the past year) a repository has.

    • Developers per Commit - How many developers there are per commit.

    • Contribution Skew - The contribution skewness in terms of how many pull requests were contributed by one-time contributors, or a few very active contributors. The raw score is non-linear and varies between 0.5 and 1.0, where values > 0.8 mean contributions are distributed on many contributors, and scores < 0.6 mean that very few contributors developed most of the project.

    Contributor activity

    This practice describes how active the contributors of a repository are. It is measured with features that analyze the current volume of commits, closed issues, pull requests, and the trend of said volume.

    The following features of Contributor Activity are measured:

    • Recent Commits - How many new commits have been made to the master branch within the last 10 weeks.

    • Commits Trend - The linear change in commits per week for the past 21 weeks (whether it is increasing or decreasing).

    • Recent Pull Requests - How many new pull requests have been made within the last 10 weeks.

    • Pull Requests Trend - The linear change in pull requests per week for the past 21 weeks (whether it is increasing or decreasing).

    • Recently Closed Issues -How many issues have been closed within the past 10 weeks.

    • Closed Issues Trend - The linear change in closed issues per week for the past 21 weeks (whether it is increasing or decreasing).

    Core team commitment

    This practice describes how committed the core team is to the project. The following features of Core Team Commitment are measured:

    • Recent Core Team Commits - How many new commits the core team has contributed to the master branch within the past 10 weeks.

    • Core Team Commits Trend - The linear trend of the number of commits the core team has made to the master branch in the last 21 weeks.

    • Core Team Issue Closing - How many issues the core team has closed in the past 10 weeks.

    • Recent Merges - How many pull requests have been merged in the past 10 weeks.

    • Merges Trend - The linear change in merged pull requests per week for the past 21 weeks, that is, whether it is increasing or decreasing.

    • Company Involvement - The highest ratio of commits from the same company in the past period of 21 weeks.

    Contributor longevity

    This practice describes the longevity of the contributors. If the developers are contributing long-term, then it might be a sign that the project has been proven valuable.

    The following features of Contributor Longevity are measured:

    • Developer Lifetime - The average time a developer contributes regularly to the repository.

    • Loyal Developer Commits - The number of commits made by long-term (loyal) developers.

    metric
    on the left side menu.
  • Click your subscription.

  • Click Cancel subscription.

  • Enter the reason (if applicable) and click Confirm cancelation.

  • Reactivate your account

    If you previously canceled a subscription, you can reactivate it with just a few clicks. To do so:

    1. Go to Billing on the left side menu.

    2. Click your subscription.

    3. Click Reactivate subscription.

    contact us

    License families

    License risks

    Set up a use case

    Proxying non-standard license identifiers

    ✓

    ✓

    Create groups

    ✓

    ✓

    Open Pull Requests

    ✓

    ✓

    Add comments

    ✓

    ✓

    Add review status

    ✓

    ✓

    Access to API

    ✓

    ✓ (access from the admin needed)

    Manual scan

    ✓

    ✓

    Access to API - Admin endpoints

    ✓

    ✕

    Invite new users

    ✓

    ✕

    Remove users

    ✓

    ✕

    Change roles/access scopes

    ✓

    ✕

    Delete company account

    ✓

    ✕

    Create/Edit/Delete automation rules

    ✓

    ✕

    Set use cases

    ✓

    ✕

    Allow SSO with GitHub

    ✓

    ✕

    Whitelist email domains for SSO

    ✓

    ✕

    Generate reports

    ✓

    ✓

    Freemium & Premium

    Add repositories

    
        "dependencies": [
        {
            "ref": "e771afadf654cc12c324a0dd716518dd",
            "depends_on": ["cpe:2.3::~:webpack:4.28.4:~:~:~:~:~:~:~"]
        },
        {
            "ref": "cpe:2.3::~:webpack:4.28.4:~:~:~:~:~:~:~",
            "depends_on": ["cpe:2.3::~:terser-webpack-plugin:1.2.1:~:~:~:~:~:~:~"]
        },
        {
            "ref": "cpe:2.3::~:terser-webpack-plugin:1.2.1:~:~:~:~:~:~:~",
            "depends_on": ["cpe:2.3::~:terser:3.14.1:~:~:~:~:~:~:~"]
        },
        {
            "ref": "cpe:2.3::~:terser:3.14.1:~:~:~:~:~:~:~",
            "depends_on": []
        }
        ]
    "recommendation": "Multiple components are affected by this vulnerability.
    Component: pkg:npm/[email protected]
    Safe version: 3.2.2.
    Root fixes: Update root dependency pkg:npm/[email protected] to 0.16.2.
    ---------
    Component: pkg:npm/[email protected]
    Safe version: 2.6.4.
    Root fixes: Update root dependency pkg:npm/[email protected] to 1.3.4.",
          "created": "2022-04-06T17:15:00+00:00",
          "published": "2022-04-06T17:15:00+00:00",
          "updated": "2022-04-06T17:15:00+00:00",
          "affects": [
            {
              "ref": "pkg:npm/[email protected]"
            },
            {
              "ref": "pkg:npm/[email protected]"
            }
          ],
          "references": [
            {
              "id": "GHSA-fwr7-v2mv-hh25",
              "source": {
                "url": "https://github.com/advisories/GHSA-fwr7-v2mv-hh25",
                "name": "GitHub"
              }
            }
    Paket, using paket.lock file

    If there is a modern NuGet project where dependencies are defined in .csproj files, OpenText Core SCA recommends using the packages.lock.json file. This file allows OpenText Core SCA to analyze the dependency tree and suggest root fixes. By default, NuGet does not generate this file, but you can create it using the High Performance Scans technology with the OpenText Core SCA CLI or by enabling repeatable package restores and then committing the generated file. When you run the resolve command, the OpenText Core SCA CLI automatically detects all manifest files that lack the recommended lock files and generates them as needed.

    In older NuGet projects, dependencies are typically stored in a packages.config ile. OpenText Core SCA recommends that users generate the necessary lock file for dependency management and root fixes using High Performance Scans with the Debricked CLI. The command debricked resolve will create a packages.lock.json style file by first translating the packages.config into a .csproj file using NuGet. From there, the lock file is generated. Once the process is complete, the .csproj file is deleted, leaving only the newly created lock file. To avoid potential conflicts with NuGet, the specially created NuGet lock file is named as packages.config.nuget.debricked.lock.

    By default, in all integrations except the GitHub app, the Debricked scan command will automatically try to generate the necessary lock files before sending your dependency files for scanning.

    OpenText Core SCA also supports sending only .csproj or packages.config files for scanning, but the packages.lock.json or packages.config.nuget.debricked.lock file is preferred, as it provides the most accurate tracking of dependency versions and trees, enabling root fixes.

    High Performance Scans for NuGet utilize native commands when resolving and include all dependencies defined with NuGet, including those managed through Central Package Management (CPM).

    If at least one of the supported files is committed to your repository, it will be automatically scanned for dependencies when you have done any of our integrations to your CI/CD pipeline.

    File fingerprinting

    OpenText Core SCA supports scanning for C# dependencies not defined in manifest files through file fingerprinting. OpenText Core SCA database contains the hashes of .nupkg files as well as their unpacked contents (including .dll files) for all packages in the NuGet gallery. This is used when comparing with the contents of your application, to ensure as accurate matches as possible. For more information on file fingerprinting and how to set it up, see file fingerprinting.

    Supported file formats and features

    Package manager
    Supported file formats
    Root dependencies
    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    Nuget

    *This is a native lock file format. Native lock file formats are the fastest formats to scan.

    **When building the knowledge base, the files are downloaded, unpacked and fingerprints are created for all file contents, except for certain excluded patterns. The fingerprints are created for the contents of each file. For example, Debricked matches .dll files for C# and .class files within .jar files for Java, along with similar files from other programming languages.

    NuGet
    file fingerprinting

    The SBOM includes the following data points:

    • Proof of license - A reference to the source from where the license information is fetched. This field is applicable only for CycloneDX SBOM.

    • License text - The actual text that the license consists of. This field is applicable only for CycloneDX SBOM.

    • Copyright statement - Displays the person or organization who holds the copyright.

    • Open Source Select link - A link to the dependency page in Open Source Select, where you can find additional information on the specific open-source package.

    • Dependency relations - Contains information on each component and their direct dependencies. See the Dependency relations sections on the and pages for more details.

    • Root Fixes - This data can be found under Recommendation. It consists of information about the first version of the specific vulnerable dependency that is safe, as well as the first version of the root or direct dependency that does not contain a vulnerable version of the indirect dependency. See the section Root Fixes for more details. This field is applicable only for CycloneDX SBOM.

    • Reachability Analysis - Displays the Reachability Analysis results for each vulnerability (if Reachability Analysis has been run). This field is applicable only for CycloneDX SBOM.

      • Reachable - Vulnerability confirmed reachable in code.

      • Not Reachable - Vulnerability not reachable through any execution path.

      • Unknown - Insufficient information to determine reachability.

    Keep in mind that license information may differ depending on the package and the specific version used.

    Export a CycloneDX or SPDX SBOM using web tool

    Keep in mind that this feature is only available for enterprise users.

    In order to generate the CycloneDX or SPDX SBOM Export:

    1. Click Generate export on the top right corner of the page.

    2. Under Scope, choose one of the following options:

      1. Global export: Export the SBOM for all repositories you have access to.

      2. Repositories: Select specific repositories for which you want to view the data and then choose the corresponding branch. If you select multiple repositories, the Branch drop-down will display only the branches common to all the selected repositories.

      3. Groups: Export the SBOM for a specific group of repositories.

    3. Under Export Type, select CycloneDX or SPDX under SBOM.

    4. Click Generate.

    5. Check your email for the exported data, which will be sent to you in the .json format. If you cannot find the email in your inbox, check the spam folder.

    Export a CycloneDX or SPDX SBOM using web tool - video guide

    Export a CycloneDX or SPDX SBOM to email using API

    If you have already integrated your repository with OpenText Core SCA, you can generate a CycloneDX or SPDX SBOM by fetching your data through the API.

    To use OpenText Core SCA REST API, you should authenticate first.

    Endpoint: /api/{1.0}/open/sbom/generate

    Following is an example of a request using curl to generate an SPDX SBOM (to generate a CycloneDX SBOM use "format": "CycloneDX"):

    You can send the following parameters in the body of the request: commitId, email, repositoryIds, branch, locale. You can choose to add license and vulnerability data, using licenses: true/false and vulnerabilities: true/false.

    If you provide a commitId, the branch and repositoryIds will be ignored. If you leave the branch field empty, the report is generated for the identified default branch (most likely 'main' or 'master', if applicable) of the selected repository. It is also possible to create an SBOM for all repositories by not specifying any repositoryIds.

    Once you send the request, you will receive your SBOM via email, which will be sent to you in the .json format. If you can’t find the email in your inbox, make sure to check the SPAM folder. If you do not provide an email address, the SBOM will be sent to the email of the user who created the request.

    Export a CycloneDX or SPDX SBOM to email using API - video guide

    Export a CycloneDX or SPDX SBOM directly from API

    It is also possible to generate a CycloneDX or SPDX SBOM and download it directly through the API. As part of the response of the /api/1.0/open/sbom/generate endpoint, a reportUuid is sent, which can be used in the /api/1.0/open/sbom/download endpoint.

    Following is an example response from the /api/1.0/open/sbom/generate endpoint:

    Following is an example request for the /api/1.0/open/sbom/download endpoint:

    If you do not want the report to also be sent to your email, it is possible to turn this off by setting the "sendEmail" value to "false" in the /api/1.0/open/sbom/generate endpoint.

    Click the following link for an example on exporting CycloneDX SBOM:

    CycloneDX SBOM file example

    Click the following link to view the list of commands to create an SBOM using the CLI.

    Manually create an SBOM using the CLI

    Automatically create an SBOM after scanning, using the CLI

    Click here to upgrade.
    Go to the Repositories tab.

    In this view, you will find all of your connected repositories along with the details:

    • Name - The name of the repository.

    • Automations - The automation rules that are triggered anytime you push code, enabling you to prevent risks from entering your codebase and automate notifications and warnings.

    • Use case - The use case assigned to your repository, enabling you to get accurate license risk metrics.

    • Repository ID - The ID of your repository.

    • Integrations - Indicates how this repository was integrated.

    • GitHub App scanning - If you have the OpenText Core SCA GitHub App installed and the repository is tracked, you can enable or disable scanning through it here. If you want to create pull requests, but have OpenText Core SCA scanning set up in another CI system, you can make use of this function.

    • Include hardware dependencies - If you enable this function, OpenText Core SCA will scan for vulnerabilities related to hardware components, such as Spectre and Meltdown.

    Delete a depository

    If you decide you no longer want to see data from a specific repository you might want to delete it from the list to clean up your data. To do so, click the trashcan icon on the far-right column.

    Export repository table data

    You can export the filtered and visible data in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the Export table data topic.

    Build your if-statement:

    1. Choose criteria for the rule to trigger. For example, CVSS is at least high (7.0-8.9). Click AND or OR to add a new criterion. You can select multiple criteria connected by the operators. See below for more information.

    2. Choose an action to be executed when the condition is true. For example, fail pipeline. See below for more information.

  • If you do not want the rule to apply for vulnerabilities that have been marked as unaffected by you or someone on your team, leave the pre-filled checkbox in the bottom right checked.

  • Click Generate rule and review any warnings (if applicable). Make sure that the statement corresponds to what you were looking to achieve with your rule.

  • Click Save.

  • Rule conditions

    Rules can incorporate multiple OR and AND operators. When working with multiple criteria and operators, the following precedents are applied:

    • AND conditions inherit previous IF or OR conditions

    • OR conditions do not inherit the previous IF or OR condition

    Rule actions

    You can select one of the following actions to be performed once a rule is triggered:

    • Fail pipeline - If the rule conditions are met, your pipeline fails.

    • Pipeline warning:

      • GitHub - If the rule conditions are met, your pipeline passes, the pipeline check is set to neutral, and a warning is printed.

      • GitLab, Bitbucket and Azure DevOps - If the rule conditions are met, your pipeline passes, and a warning is printed.

    • Notification by email - If the rule conditions are met, you receive an email notification.

    • Notify user groups by email - If the rule conditions are met, all users in a chosen user group receive an email notification.

    • Mark as unaffected - If the rule conditions are met, the affected vulnerabilities are marked as unaffected.

    • Flag as vulnerable - If the rule conditions are met, the affected vulnerabilities are marked as vulnerable.

    • Trigger webhook - If the rule conditions are met, a webhook is sent.

    Missing CVSS score

    Rules that use the CVSS score as one of the conditions, might not trigger for vulnerabilities that lack a CVSS score. This does not mean that the vulnerability is not severe, but that the data source lacked the CVSS score information. To account for this, you can add the statement:

    OR CVSS is missing

    Keep in mind that adding the OR statement does not take previous IF or AND statements into consideration.

    Production dependencies

    This option is currently supported for Javascript (Yarn, NPM), Nuget, Java (Maven, Gradle), PHP (Composer), Python (requirements.txt), and Go.

    You can make your policies or automations only trigger if the related dependency is used in production, to reduce the number of false positives or very low-risk triggers. To set this up, simply add another condition to the rules you want triggered only for non-dev dependencies:

    Automation rule examples

    • Prevent new dependencies with vulnerabilities

      Imagine you have a developer branch called dev where you add new exciting features. Being security-aware, you want to fail the pipeline if a new commit introduces a new vulnerability with a severity of high or more. You also want to be notified of this incident.

    • Prevent unknown license families and GPL

      In this scenario, OpenText Core SCA fails the pipelines if there are dependencies with either an unknown license family, or if the dependencies have any of the GPL-2.0 and AGPL-3.0 licenses. OpenText Core SCA also notifies all the administrators for the company account.

    files

    Go Modules

    OpenText Core SCA supports tracking Go dependencies using the Go Modules dependency management system and its associated go.mod file. To achieve the fastest and most accurate results, it is necessary to create a file containing the resolved dependency tree, .gomod.debricked.lock, before scanning.

    This can be done using the High Performance Scans technology in OpenText Core SCA CLI. If you execute the resolve command, the CLI automatically identifies all manifest files that lack the recommended go.lock files and generates them as needed.

    You can manually generate the recommended file(s) by running go mod graph followed by go list -m all, and storing the outputs separated by two new lines between the sections in the gomod.debricked.lock file.

    Every gomod.debricked.lock must be put in the same directory as the corresponding go.mod.

    OpenText Core SCA recommends running go mod tidy to clean up unused modules before pushing the go.mod files, ensuring more accurate service results.

    Bazel

    OpenText Core SCA supports Go projects that utilize Bazel, scanning the WORKSPACE file format alongside any Go file formats in use. Although Bazel does not have native support for Go, support can be added using Gazelle.

    Go Dep

    Go Dep and its associated file Gopkg.lock is deprecated and will not get any improvements present in other formats, such as Go Modules.

    Supported file formats and features

    Package manager
    Supported file formats
    Root dependencies
    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    Bazel

    *This is a native lock file format. Native lock file formats are the fastest formats to scan.

    Unlike the CycloneDX SBOM, the SPDX SBOM does not contain vulnerability information.

    Dependency relations

    The relationships between components are presented in the relationships array. OpenText Core SCA SPDX SBOMs support following two types of relationship objects:

    • DESCRIBES which is used for declaring each file and dependency component in the BOM.

    • DEPENDENCY_OF which denotes a direct relationship between two components.

    In the objects describing the direct dependencies of a file, the 'relatedSpdxElement' will contain the reference of that file. Relationships between dependencies will instead reference the parent dependency. By traversing the dependencies array, it is possible to build the entire dependency tree.

    In the example below, you can see direct dependency `webpack-4.28.4` referenced as a dependency of a file. Component `terser-webpack-plugin-1.2.1` is in turn referenced as a dependency of `webpack-4.28.4` and lastly, `terser-3.14.1` is a dependency of `terser-webpack-plugin-1.2.1`.

    Here is how this would be visualised in the user interface:

    SCA Enterprise
    Click here to upgrade.

    Account

    Learn how to manage your account with OpenText Core SCA.

    Billing

    Learn about billing at OpenText Core SCA.

    See your data

    Learn how to find detailed information about your projects.

    In order to efficiently work with vulnerabilities in your repositories, you need an overview of all repositories you have along with the vulnerabilities affecting them. OpenText Core SCA provides you with an overview of all your projects and their security status.

    See all your repositories

    To get an overview of all your repositories, click Repositories in the left side menu.

    In this view, all your repositories are shown, by default sorted by the amount of vulnerabilities, along with the data:

    Set up webhooks

    Learn how to set up and configure a webhook.

    In order to send a webhook request when an automation rule is triggered, add a "trigger webhook" action to the rule and enter the URL for the webhook in the URL field. When the rule is triggered, a POST request will be sent to the given URL with JSON-encoded data about the event.

    The JSON will contain the following keys:

    Key
    Type
    Description

    Python - Pip, Pipenv

    See a breakdown of the file formats and features supported in Python.

    OpenText Core SCA now tracks Python dependencies through:

    • Pip (using the older requirements.txt files)

    • Pipenv (using the newer Pipfile.lock files)

    • , to find dependencies not defined in manifest-files

    curl -X 'POST' \
      'https://debricked.com/api/1.0/open/sbom/generate' \
      -H 'accept: application/json' \
      -H 'Authorization: Bearer <token>' \
      -H 'Content-Type: application/json' \
      -d '{
      "format": "SPDX-2.3",
      "email": "[email protected]",
      "repositoryIds": [
        1
      ],
      "vulnerabilities": true,
      "rootFixes": true,
      "licenses": true,
      "sendEmail": true
    }'
    {
      "message": "The report has started generating and can be downloaded through the 'download' endpoint once ready, by using the reportUuId stated below. Be aware that it might take some time before it's finished",
      "reportUuid": "<report_uuid>",
      "notes": [
        "Example note"
      ]
    }
    curl -X 'GET' \
      'https://debricked.com/api/1.0/open/sbom/download?reportUuid=<report_uuid>' \
      -H 'accept: */*' \
      -H 'Authorization: Bearer <token>'
    printf "$(go mod graph)\n\n$(go list -mod=readonly -e -m all)" > gomod.debricked.lock
    "relationships": [
        {
            "spdxElementId": "SPDXRef-DOCUMENT",
            "relatedSpdxElement": "SPDXRef-bda845e38ee2becb214eaa4c995d4951d755faceb38a4ef6e7092699592d7efe",
            "relationshipType": "DESCRIBES"
        },
        {
            "spdxElementId": "SPDXRef-DOCUMENT",
            "relatedSpdxElement": "SPDXRef-pkg-npm-terser-3.14.1",
            "relationshipType": "DESCRIBES"
        },
        {
            "spdxElementId": "SPDXRef-DOCUMENT",
            "relatedSpdxElement": "SPDXRef-pkg-npm-terser-webpack-plugin-1.2.1",
            "relationshipType": "DESCRIBES"
        },
        {
            "spdxElementId": "SPDXRef-DOCUMENT",
            "relatedSpdxElement": "SPDXRef-pkg-npm-webpack-4.28.4",
            "relationshipType": "DESCRIBES"
        },
        {
            "spdxElementId": "SPDXRef-pkg-npm-terser-3.14.1",
            "relatedSpdxElement": "SPDXRef-pkg-npm-terser-webpack-plugin-1.2.1",
            "relationshipType": "DEPENDENCY_OF"
        },
        {
            "spdxElementId": "SPDXRef-pkg-npm-terser-webpack-plugin-1.2.1",
            "relatedSpdxElement": "SPDXRef-pkg-npm-webpack-4.28.4",
            "relationshipType": "DEPENDENCY_OF"
        },
        {
            "spdxElementId": "SPDXRef-pkg-npm-webpack-4.28.4",
            "relatedSpdxElement": "SPDXRef-bda845e38ee2becb214eaa4c995d4951d755faceb38a4ef6e7092699592d7efe",
            "relationshipType": "DEPENDENCY_OF"
        }
    ],

    .csproj

    Yes

    Nuget

    package.lock.json

    Yes*

    Nuget

    packages.config

    Yes

    Paket

    paket.lock

    Yes*

    -

    fingerprinted files (.dll, .nupkg and more**)

    -

    WORKSPACE

    -

    Bazel

    install.json

    Yes*

    Go Modules

    go.mod

    Yes

    Go Dep

    gopkg.lock

    Yes*

    Repository groups

    Manually upload a dependency file

    Manage your commits

    Change your password

    Delete your account

    Delete company account

    Manage contributing developers

    Manage billing frequency

    Manage payment methods

    Access invoices

    Manage your subscription

    Generate access token
    Account
    Billing
    Settings
    Users
    Repositories

    Name: The name of the repository prepended with the name of the owner.

  • Total indirect dependencies: The number of indirect dependencies that were imported by the dependency.

  • Total vulnerabilities: The total number of vulnerabilities found (including indirect dependencies).

  • Vulnerability priority: The total number of vulnerabilities where the CVSS score is critical or high.

  • Review status: The total number of vulnerabilities, where the review status is set to vulnerable, unexamined, paused/snoozed, and unaffected.

  • Total vulnerabilities with exploits: The total amount of vulnerabilities that have at least one known exploit.

  • You can export the filtered and visible repository data in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the Export table data topic.

    See vulnerabilities in a specific repository

    To show all vulnerabilities in a specific repository, click the repository name. This displays a view specific for that repository.

    In this view, you get detailed information regarding the vulnerabilities discovered in your repository:

    • Name: The vulnerability name, which is usually a CVE identifier.

    • Discovered: The date at which the vulnerability was discovered in your code or repository.

    • CVSS: The CVSS score for this vulnerability.

    • Dependencies: The dependency in which the vulnerability was discovered.

    • Indicates whether the vulnerability is known to be vulnerable, unaffected, or unexamined.

    • Reachable Path: Displays if the vulnerable functionality is reachable or not through your code. This field is conditionally displayed based on whether was run or not.

    • Exploited (CISA): Determines whether the vulnerability is exploited or not, based on the CISA KEV catalog.

    To see all commits related to this repository, or all related dependencies, click one of the tabs.

    You can export the filtered and visible vulnerability data in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the Export table data topic.

    See information about a specific vulnerability

    To get detailed information about a specific vulnerability in a repository, click the vulnerability ID. This view contains links to advisories, such as NVD and GitHub along with a summary of the severity.

    The summary contains the following information about the vulnerability:

    • File(s) in which the vulnerability was found and the dependencies that introduced vulnerabilities.

    • Versions of vulnerable dependencies, and suggested safer alternative versions that can be used wherever possible.

    • Breakdown of the CVSS scores

    You will also get a list of external references that contain information about remediations, patches, real-world exploits, as well as documentation from issue trackers.

    See all vulnerabilities across all projects

    To get an overview of all vulnerabilities found in all scanned repositories, click Vulnerabilities in the left side menu.

    This view is similar to the view for a specific repository, but here all vulnerabilities found in all your repositories are included.

    You can export the filtered and visible vulnerability data in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the Export table data topic.

    See all your dependencies

    To get an overview of all imported dependencies, including indirect dependencies, click Dependencies in the left side menu.

    In this view, you are presented with a list of all dependencies found in all scanned repositories. It includes details such as:

    • Name: The name of the dependency.

    • Total indirect dependencies: The number of indirect dependencies that were imported by the dependency.

    • Total vulnerabilities: The total number of vulnerabilities found (including indirect dependencies).

    • Vulnerability priority: The total number of vulnerabilities where the is critical or high.

    • Review status: The total number of vulnerabilities, where the is set to vulnerable, unexamined, paused/snoozed, and unaffected.

    • Licenses: The license under which the dependency is released.

    • Health Scores: The and the of this dependency.

    You can export the filtered and visible dependency data in the table to a CSV file. To do so, click Export Table located at the top-right corner of the table. For more information, refer to the Export table data topic.

    Symbols

    The column Name contains additional symbols providing you with more information:

    • ? - This is used for dependencies for which we were not able to parse the dependency tree (see Language Support).

    • ▼ - This is used for direct dependencies which include indirect dependencies (see section below).

    • dependency symbol - This is used for indirect dependencies which are related to the main dependencies.

    • no symbol - This is used for direct dependencies that do not include any indirect dependencies.

    Direct or indirect dependencies

    use the ▼ button next to the name of the direct dependency to see its indirect dependencies. The indirect dependencies are marked with an icon in the Name column to make it easier for you to differentiate them. To expand all direct dependencies in the current page, click the Expand all/Collapse all toggle button at the top.

    Search for dependencies

    You can type the name of a package in the Search bar, to search for a specific dependency (direct or indirect), or the name of a license to see all the dependencies related to one license.

    Name of the branch which was scanned

    commit

    string

    Name of the commit which was scanned

    commitLink

    string

    Link to a page debricked.com, where scan results for this commit are available

    ruleId

    integer

    Unique identifier for the rule that was triggered

    ruleLink

    string

    Link to a page in debricked.com, where the triggered rule can be viewed or edited

    triggeredFor

    array

    Array of objects, where each element describes a combination of a vulnerability and a dependency which caused the rule to trigger

    Each element of triggeredFor will contain the following keys:

    Key
    Type
    Description

    dependency

    string

    Name of the dependency which caused the rule to trigger

    dependencyLicenses

    array

    Array of licenses affecting the dependency, each encoded as a string using the same name as shown in the license view

    dependencyLink

    string

    Link to the dependency on debricked.com

    Send a sample request

    A sample webhook request can be sent to the specified URL by clicking Send sample request. The triggeredFor array will be populated using up to three vulnerabilities that were found the last time this repository was scanned. Note that these vulnerabilities may not necessarily fulfill the conditions specified in the rule.

    Verification secret

    To ensure that a webhook request was sent by Debricked, a key can be specified in the verification secret field. When a verification secret is specified, webhook requests made by this rule will include the header X-Debricked-Signature, containing an SHA256-HMAC signature generated using the webhook payload and the verification secret.

    Set up a webhook with slack through Zapier

    You can use the automation engine to send notifications to Slack, with the help of middleware, e.g. Zapier. Keep in mind that this is currently only possible using the premium version of Zapier.

    To create a webhook URL:

    1. Open Zapier.

    2. Click +Create Zap.

    3. Search for and select Webhooks by Zapier.

    4. Go to the Event drop-down, select Catch Hook and click Continue.

    5. Copy the Webhook URLI.

    6. Click Continue and then Test trigger.

    7. Once you have the URL, open the Debricked tool and go to Automations on the left-side menu.

    8. You can either create a new rule or edit an existing one in the Then statement. Once done, add the trigger webhook action.

    9. Paste the Webhook URL copied from Zapier into the field.

    10. If needed, click Send sample request to test if everything works correctly.

    11. Click Generate rule and Save.

    Set up notifications in slack using webhook

    To manage your notifications in Slack:

    1. Open Zapier.

    2. Click Action and select Slack.

    3. Go to the Event drop-down and select the desired action. For example, Send Channel Message.

    4. Click Choose account and follow the instructions on the page to connect your Slack account to Zapier.

    5. Click Set up action and select the data that you want to send.

    6. Click Message text and select the information to be included in the message.

    7. Click Test action.

    8. Click Publish Zap.

    Now you are ready to receive Slack notifications from Debricked!

    repository

    string

    Name of the repository which was scanned

    branch

    string

    Pip

    To achieve the fastest and most accurate results, create a file containing the resolved dependency tree before scanning. This can be accomplished using the High Performance Scans technology in OpenText Core SCA CLI. By executing the resolve command, the CLI automatically identifies all manifest files that lack the recommended lock files and generates them as needed. The first part of the name is based on the name of the file it was generated from. The file naming format is as follows:

    Example: .requirements.txt.pip.debricked.lock

    If at least one of the supported files is committed to the repository, it will be automatically scanned for dependencies when integrated with OpenText Core SCA CI/CD pipeline.

    File fingerprinting

    OpenText Core SCA supports scanning for Python dependencies not defined in manifest files through file fingerprinting. OpenText Core SCA database contains the hashes of .whl files as well as their unpacked contents (including .py files) for all packages in the Python package index (PyPI). This is used when comparing with the contents of your application, to ensure as accurate matches as possible.

    For more information on file fingerprinting and how to set it up, see file fingerprinting.

    Supported file formats and features

    Package manager
    Supported file formats
    Root dependencies
    Indirect dependencies
    Dependency trees
    Security scanning
    License scanning
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    Pip

    file fingerprinting

    CycloneDX SBOM export

    SPDX SBOM export

    CycloneDX SBOM export
    SPDX SBOM export
    <FILE_NAME>.pip.debricked.lock

    cve

    object / null

    Information about the vulnerability which caused the rule to trigger, or null if the rule doesn't have any conditions related to vulnerabilities

    cve.name

    string

    Name of the vulnerability that caused the rule to trigger

    cve.link

    strint

    Link to the vulnerability on debricked.com

    cve.cvss2

    number / null

    CVSS2 score for the vulnerability, or null if not available

    cve.cvss3

    number / null

    CVSS3 score for the vulnerability, or null if not available

    requirements.txt

    Yes

    Pipenv

    Pipfile

    Pipenv

    Pipfile.lock

    Yes

    -

    fingerprinted files (.py, .txt, .sh, .c, .egg, .h and more**)

    -

    Review status:
    Reachability Analysis
    CVSS score
    review status
    Popularity score
    Contributor score

    Language support

    See the full list of the languages and package managers currently supported by OpenText Core SCA.

    OpenText Core SCA now supports a broad array of programming languages and package managers, allowing you to scan your code in your native language. Here is the complete list of languages and their level of support:

    Supported file formats and features

    Following is the complete list of supporting languages, including root dependencies, indirect dependencies, security scanning, and license scanning.

    Language
    Package manager
    Supported file formats
    Dependency trees
    Root fix
    Pull Request
    Reachability Analysis
    High Performance Scan

    *This is a native lock file format. Native lock file formats are the fastest formats to scan.

    **When constructing our knowledge base, OpenText Core SCA downloads files, extracts their contents, and creates fingerprints for all file content, except for a few excluded patterns. After that, fingerprints are generated for all the content within each file. For example, OpenText Core SCA specifically matches .dll files used in C# applications and .class files found within .jar files.

    Nuget

    packages.config

    Yes

    C#

    Packet

    paket.lock

    Yes*

    C#

    -

    fingerprinted files (.dll, .nupkg and more**)

    -

    CycloneDX SBOM

    -

    bom.json

    Yes*

    CycloneDX SBOM

    -

    bom.xml

    Yes*

    Go

    Bazel

    WORKSPACE

    -

    Go

    Bazel

    install.json

    Yes*

    Go

    Go Modules

    go.mod

    Yes

    Go

    Go Dep

    gopkg.lock

    Yes*

    Java / Kotlin

    Gradle

    build.gradle

    Yes

    Java / Kotlin

    Gradle

    build.gradle.kts

    Yes

    Java / Kotlin

    Maven

    pom.xml

    Yes

    Java / Kotlin

    Bazel

    WORKSPACE

    -

    Java / Kotlin

    Bazel

    install.json

    -

    Java / Kotlin

    -

    fingerprinted files (.jar, .war, pom.xml and more*)

    -

    JavaScript

    NPM

    package.json

    Yes

    JavaScript

    NPM

    package.lock.json

    Yes*

    JavaScript

    Yarn

    package.json

    Yes

    JavaScript

    Yarn

    yarn.lock

    Yes*

    JavaScript

    Bower

    bower.json

    Yes

    JavaScript

    -

    fingerprinted files (.js, .ts and more**)

    -

    Objective-C

    CocoaPods

    podfile.lock

    Yes*

    PHP

    Composer

    composer.json

    Yes

    PHP

    Composer

    composer.lock

    Yes*

    Python

    Pip

    requirements.txt

    Yes

    Python

    Pipenv

    Pipfile

    -

    Python

    Pipenv

    Pipfile.lock

    -

    Python

    -

    fingerprinted files (.py, .txt, .sh, .c, .egg, .h and more**)

    -

    Ruby

    RubyGems

    Gemfile.lock

    Yes*

    Rust

    Cargo

    Cargo.lock

    Yes*

    Swift

    CocoaPods

    podfile.lock

    Yes*

    Scala

    SBT

    build.sbt

    Yes

    C#

    Nuget

    .csproj

    Yes

    C#

    Nuget

    package.lock.json

    Yes*

    C# - Nuget, Paket

    CycloneDX SBOM

    Go - Go Modules, Go Dep, Bazel

    Java & Kotlin - Gradle, Maven, Bazel

    JavaScript - NPM, Yarn, Bower

    Objective-C - CocoaPods

    PHP - Composer

    Python - Pip, Pipenv

    Ruby - RubyGems

    Rust - Cargo

    Swift - CocoaPods

    Linux package managers

    Scala - SBT

    C#

    Create a OpenText Core SCA account

    Create your OpenText Core SCA account effortlessly. Follow this simple guide to set up your account quickly.

    You must create a OpenText Core SCA account to use our service. To create a OpenText Core SCA account, navigate to our website and click Start for Free or Log in.

    There are two ways to create a OpenText Core SCA account:

    • Sign up with email

    • Sign up using GitHub SSO

    Sign up with email​​​​​​​

    This process creates a new company account. To join an existing company account, contact your company administrator for assistance.

    To sign up using your email address:

    1. Type your email address.

    2. Read and accept the privacy policy and terms and conditions.

    3. Type your details.

    4. Type a secure password for your account.

    Sign up using GitHub SSO

    You can also sign up using your GitHub account:

    1. Click the GitHub button on the .

    2. Sign in using your GitHub credentials.

    3. Next, you can either choose to connect to an organization or continue without one.

    Administrator role

    If you are the first collaborator to sign up in our organization or if you are not associated with any organization, you will receive admin rights. Even if you sign up using Single Sign-On (SSO), you will still need to create a password for the admin interface due to handling of sensitive information.

    As an administrator, you are allowed to:

    • Add, remove, or edit users

    • Manage access tokens

    • Change user permissions such as:

      • Allow SSO

    If your company or colleagues already use OpenText Core SCA, join the existing organization.
  • If you are the first collaborator to join or prefer to use our tool privately, you can opt to continue without connecting to an organization.

  • Choose the email address you want to use with your OpenText Core SCA account and enter your information.

  • Create a secure password.

    • The password will not be used if you are logging in through GitHub.

    • The password is used to access admin pages if you have administrative rights.

    • The password is used if you use the email to log in instead of using the GitHub Single Sign-On (SSO).

  • Enforce comments when marking vulnerabilities as unaffected

  • Allow users to snooze vulnerability automations

  • Sign-up page

    Role-Based Access Control (Enterprise)

    Understand the distinct functions and permissions of each user role available through OpenText Core SCA's Role-Based Access Control.

    This feature is only available for our SCA Enterprise users. Already have an account? Click here to upgrade.

    Role-Based Access Control (RBAC)

    Role-Based Access Control (RBAC) allows you to grant and enforce access to functionalities and integrated repositories by assigning pre-defined roles to users. To give you better control over what functionality and data can be accessed by different users, these roles are assigned per individual repository. A single user can have one level of access rights for one repository and a different level for another. Anything a user can see and do in an integrated repository is defined by their role.

    Default user role

    By default, once a new repository is integrated, only the company admin(s) get access to it (apart from the user integrating it), while other users are assigned the No access role. As a company admin, you are able to set the default role to one of your choice (up to the Reviewer role), which will be assigned to users every time a new repository is integrated.

    To do so:

    1. Go to Admin tools.

    2. Type your password to enter the administrative mode.

    3. In the Company Settings tab, click the drop-down and select a role of your choice.

    User roles

    Following are the seven different user roles:

    No access

    Users with this role can only see the name of the repository, but cannot access any more information.

    Viewer

    Recommended for non-code contributors who want to view or discuss your project.

    Users with this role can:

    • View repository information

    • View Start Left information

    Developer

    Recommended for contributors who should be able to create pull requests and fix vulnerabilities.

    Users with this role can:

    • Access the repository

    • View repository information

    Reviewer

    Recommended for contributors who need to review and triage vulnerabilities and the like.

    Users with this role can:

    • Access the repository

    • View repository information

    Maintainer

    Recommended for contributors who don’t need to review and triage, but are able to manage the repository, perform manual uploads, and invite users.

    Users with this role can:

    • Access the repository

    Repository admin

    Recommended for people who need full access to the repository, including reviews and triaging.

    Users with this role can:

    • Access the repository

    • View repository information

    Company admin

    The highest level of access. Recommended for people who need full access to all repositories and settings.

    Users with this role can perform all actions of a Repository admin and also:

    • Modify all automation rules

    Available actions for each user role

    Action
    Viewer
    Developer
    Reviewer
    Maintainer
    Repository Admin
    Company Admin

    Assign roles when inviting new users

    1. Go to Admin tools. You can also go to either Repositories, Vulnerabilities or Dependencies view.

    2. If needed, type your password to enter the administrative mode.

    3. Click Invite users.

    Modify access for an existing user

    1. Go to Admin tools.

    2. Type your password to enter the administrative mode.

    3. In the Users tab, find a list of users in your company. If you hover over the rule name in the User role column, you can see all of the current roles of that user and their scope(s).

    For information on configuring user access using API, refer the following topic:

    Add comments

  • Create exports

  • Access the API (limited by endpoints)

  • Integrate repositories

  • Add comments

  • View Start Left information

  • Create exports

  • Access the API (limited by endpoints)

  • Create Pull Requests

  • Pause vulnerabilities

  • Perform manual uploads (only via the API)

  • Integrate repositories

  • Add comments

  • View Start Left information

  • Create exports

  • Access the API (limited by endpoints)

  • Create Pull Requests

  • Pause and snooze vulnerabilities

  • Set and change the review status

  • Perform manual uploads

  • View repository information
  • Integrate repositories

  • Add comments

  • View Start Left information

  • Create exports

  • Access the API (limited by endpoints)

  • Create Pull Requests

  • Pause vulnerabilities

  • Modify repository automation rules

  • Edit other users’ permissions (up to own levels)

  • Invite users

  • Edit repository use cases

  • Set the default branch for the repository

  • Enable or disable GitHub scanning

  • Delete repositories

  • Delete commits

  • Perform manual uploads

  • Integrate repositories

  • Add comments

  • View Start Left information

  • Create exports

  • Access the API (limited by endpoints)

  • Create Pull Requests

  • Pause and snooze vulnerabilities

  • Modify repository automation rules

  • Edit other users’ permissions (up to own levels)

  • Invite users

  • Edit repository use cases

  • Set the default branch for the repository

  • Enable or disable GitHub scanning

  • Delete the repository

  • Delete commits

  • Perform manual uploads

  • Set and edit the review status

  • Edit all use cases
  • Delete the company account

  • Access billing self-serve

  • Whitelist email domains

  • Enforce 2 factor authentication

  • Change SSO settings

  • Modify default automations

  • Toggle allowing or disallowing snooze

  • Delete other accounts

  • Disable other accounts

  • Update account information for other users

  • Manage policies

  • View Start Left information

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    Access to API

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    Create exports

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    Add comments

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    Access the repository

    ✓

    ✓

    ✓

    ✓

    ✓

    ✓

    Integrate repositories

    ✓

    ✓

    ✓

    ✓

    ✓

    Create Pull Requests

    ✓

    ✓

    ✓

    ✓

    ✓

    Pause vulnerabilities

    ✓

    ✓

    ✓

    ✓

    ✓

    Perform manual uploads

    ✓

    ✓

    ✓

    ✓

    ✓

    Snooze vulnerabilities

    ✓

    ✓

    ✓

    Set and change the review status

    ✓

    ✓

    ✓

    Modify automation rules for a given repository

    ✓

    ✓

    ✓

    Edit other users’ permissions (up to own levels)

    ✓

    ✓

    ✓

    Invite users

    ✓

    ✓

    ✓

    Edit repository use cases

    ✓

    ✓

    ✓

    Set the default branch for the repository

    ✓

    ✓

    ✓

    Enable or disable GitHub scanning

    ✓

    ✓

    ✓

    Delete repositories

    ✓

    ✓

    ✓

    Delete commits

    ✓

    ✓

    ✓

    Create access tokens

    ✓

    ✓

    Delete the company account

    ✓

    Access billing self-serve

    ✓

    Whitelist email domains

    ✓

    Enforce 2 factor authentication

    ✓

    Change SSO settings

    ✓

    Modify default automations

    ✓

    Toggle allowing/disallowing snooze

    ✓

    Delete other accounts

    ✓

    Disable other accounts

    ✓

    Update information for other user

    ✓

    Manage policies

    ✓

    Select the repository(s) you want the users to be invited to.
  • Add the emails of the invitee(s).

  • Select a user role for each of the invitee.

  • Click Create invite.

  • The invitation then shows up in the Invitations to send tab. Here, you can Edit or Delete it if needed.

  • Once you review it, click Send invite.

  • The invitation then shows up in Sent invitations. Here, you can withdraw the invitation by clicking Delete.

  • To edit the role, click Edit (pen icon) on the right side of the table.
  • Click either the Handle access tab, or Handle access button. Here, you can edit the user’s existing role(s) and their scope(s).

  • To assign a new role click the + button.

  • View repository information

    ✓

    ✓

    ✓

    ✓

    ✓

    Configuring user access using API

    ✓