Skip to main content

WS SBOM Generator in SPDX format

Project description

Logo
License CI Python 3.6 GitHub release

WS SBOM Generator in SPDX format

CLI Tool and a Docker image to generate an SBOM report in SPDX format.

  • The tool can generate reports on the following scopes (defined with: -s/WS_SCOPE):
    • Project token - the tool will generate a report on a specific project.
    • Product token - the tool will generate a report on all the projects within the product.
    • No Token specified - the tool will generate a report on all the projects within the organization.
  • The tool utilizes a forked package of spdx-tools.
  • The tool accepts additional values which are unknown to WhiteSource via sbom_extra.json.
  • If URL is not stated (defined with: -a/WS_URL), the tool will access saas.
  • If report type is not stated (defined with: -t/WS_REPORT_TYPE) the tool will generate a report in tag-value format.
    • Supported file formats: json, tv, rdf, xml and yaml.

Permissions to run the tool

The user key used (-u) must be a member of one the following groups:

  • Organization Administrator - For dynamically obtaining the organization name and generating reports on all projects (in all products).
  • Product Administrator (-y must be passed ) - For running on specific project or all projects within the product.

Prerequisites

Python 3.7+

Deployment and Usage

From PyPi (simplest)

Install as a PyPi package:

Execute: pip install ws-sbom-generator

Usage:

 usage: sbom_generator.py [-h] [-u WS_USER_KEY] [-k WS_TOKEN] [-s SCOPE_TOKEN] [-y {project,product,organization,globalOrganization}] [-a WS_URL] [-t {json,tv,rdf,xml,yaml,all}] [-e EXTRA] [-o OUT_DIR]

  Utility to create SBOM from WhiteSource data
  
  optional arguments:                                                                                                                                                                                     
  -h, --help            show this help message and exit                                                                                                                                                 
  -u WS_USER_KEY, --userKey WS_USER_KEY                                                                                                                                                                 
  WS User Key
  -k WS_TOKEN, --token WS_TOKEN
  WS Organization Key
  -s SCOPE_TOKEN, --scope SCOPE_TOKEN
  Scope token of SBOM report to generate
  -y {project,product}, --tokenType {project,product,organization,globalOrganization}
  WS Token type
  -a WS_URL, --wsUrl WS_URL
  WS URL
  -t {json,tv,rdf,xml,yaml,all}, --type {json,tv,rdf,xml,yaml,all}
  Output type
  -e EXTRA, --extra EXTRA
  Extra configuration of SBOM
  -o OUT_DIR, --out OUT_DIR
  Output directory

Examples:

# Create tag value report on a specific project 
ws_sbom_generator -u <WS_USER_KEY> -k <WS_ORG_TOKEN> -a app-eu -s <WS_PROJECT_TOKEN> -e /<path/to>/sbom_extra.json -o </path/reports>
# Creating JSON report on all projects within the product 
ws_sbom_generator -u <WS_USER_KEY> -k <WS_ORG_TOKEN> -a https://di.whitesourcesoftware.com -s <WS_PRODUCT_TOKEN> -t json -e /<path/to>/sbom_extra.json -o </path/reports>

Docker container

Installation:

docker pull whitesourcetools/ws-sbom-generator:latest 

Execution:

docker run --name ws-sbom-generator \ 
  -v /<EXTRA_CONF_DIR>:/opt/ws-sbom-generator/sbom-generator/resources \ 
  -v /<REPORT_OUTPUT_DIR>:/opt/ws-sbom-generator/sbom-generator/output \
  -e WS_USER_KEY=<USER_KEY> \ 
  -e WS_TOKEN=<ORG_WS_TOKEN> \
  -e WS_SCOPE=<WS_SCOPE> \
  -e WS_URL=<WS_URL> \
  -e WS_TYPE=<WS_TYPE> \
  whitesourcetools/ws-sbom-generator 

Sample extra configuration (--extra/-e switch)

{
  "namespace": "http://CreatorWebsite/pathToSpdx/DocumentName-UUID",
  "org_email": "org@email.address",
  "person": "person name",
  "person_email": "person@email.address"
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ws_sbom_generator-0.3.11-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file ws_sbom_generator-0.3.11-py3-none-any.whl.

File metadata

  • Download URL: ws_sbom_generator-0.3.11-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for ws_sbom_generator-0.3.11-py3-none-any.whl
Algorithm Hash digest
SHA256 049228c01af5c8b0a9132af25e80fec91ec1f833eff096c64b2640ab9d5ae674
MD5 2d7b89231270575a347c3c0092792bc1
BLAKE2b-256 3c0c9edf08889f617c720334f258b4130c7922113e9a9e0880477fc2e2f57ec1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page