Git Product home page Git Product logo

cyclonedx / cyclonedx-web-tool Goto Github PK

View Code? Open in Web Editor NEW
26.0 4.0 4.0 117.62 MB

A web based tool for working with CycloneDX BOMs

Home Page: https://cyclonedx.github.io/cyclonedx-web-tool

License: Apache License 2.0

HTML 72.95% C# 4.42% CSS 9.58% JavaScript 11.68% Shell 0.44% Dockerfile 0.94%
bom bill-of-materials software-bill-of-materials purl package-url sbom cyclonedx owasp obom mbom

cyclonedx-web-tool's Introduction

Build Status License Website Slack Invite Group Discussion Twitter

CycloneDX Web Tool

A web based tool for working with CycloneDX BOMs.

The hosted version is available at https://cyclonedx.github.io/cyclonedx-web-tool.

Supported functionality:

  • Converting between different versions and formats
  • Validation
  • Merging multiple BOMs into a single BOM

BOM data privacy

The web tool is built as a "static site" using WebAssembly for BOM processing.

All processing is done client side in your browser. No submitted BOM data is transmitted elsewhere.

Self Hosting

The web tool is built as a "static site". Any standard web server should work.

Supported Browsers

The web tool is supported on the current versions of the following browsers:

  • Apple Safari (including on iOS)
  • Google Chrome (including on Android)
  • Microsoft Edge
  • Mozilla Firefox

License

Permission to modify and redistribute is granted under the terms of the Apache 2.0 license. See the LICENSE file for the full license.

Contributing

Pull requests are welcome. But please read the CycloneDX contributing guidelines first.

To build and test the solution locally you should have .NET 6 installed. Standard commands like dotnet build and dotnet test work.

cyclonedx-web-tool's People

Contributors

coderpatros avatar coderpatros-admin avatar dependabot[bot] avatar zdtsw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cyclonedx-web-tool's Issues

docker step of release is broken

https://github.com/CycloneDX/cyclonedx-web-tool/runs/7798800441?check_suite_focus=true

/usr/bin/docker buildx build --build-arg VERSION=0.5.2 --iidfile /tmp/docker-build-push-7FIqNW/iidfile --platform linux/amd64,linux/arm64 --secret id=GIT_AUTH_TOKEN,src=/tmp/docker-build-push-7FIqNW/tmp-2033-6VgNzt1hCUW3 --tag cyclonedx/cyclonedx-web-tool:0.5.2 --tag cyclonedx/cyclonedx-web-tool:latest --metadata-file /tmp/docker-build-push-7FIqNW/metadata-file --push https://github.com/CycloneDX/cyclonedx-web-tool.git#b3d0c028c7a82e69ad63d1dc459b5af63c12fe51
error: multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")
Error: buildx failed with: error: multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")

Validator not complying with the specifications

On validating a version 1.4 CycloneDX in the validator, it is being invalidated because of CPE tags...

According to the specs, CPE was deprecated in v1.3, but, v1.4 shall support CPEs; stilll the validator is invalidating

Add BOM diffing

My current thinking is a visual hierarchical diff. A bit like diff tools that support a diff between two directories.
A really basic mock up using meld

image

But with actual values display rather than just "version" etc

Validation of newly generated BOM files fails

Context

Windows 10

Cyclone versions:

NPM Version: @cyclonedx/[email protected] of CycloneDX for NPM
.NET Version: 2.7.0 of CycloneDX for .NET

IDEs

VS 2022
VS Code

npm version 9.2.0
node version 18.12.1

Actions

  1. Generating NPM and .NET BOMs from the latest boilerplate project on https://aspnetboilerplate.com as is - unpack, restore packages and run the BOM generation as described below
// for the NPM BOM
cyclonedx-npm --output-format "JSON" --output-file "bom.json" 

// for the .NET BOM
dotnet-CycloneDX .\FMS.sln -o ./
dotnet-CycloneDX .\FMS.sln -o ./ -j

The generation is ok.

  1. Validation
    To validate the generated BOMs I am using the hosted version : https://cyclonedx.github.io/cyclonedx-web-tool

The validation tools returns errors on both BOMs

Results

From both validations I get alert : The file is not a valid v1.4 BOM.

From the NPM BOM validation I get :
'<' is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.

From the .NET BOMs in JSON validation I get:
"Validation failed: #/properties/components/items"

From the .NET BOMs in XML validation I get:
Validation failed at line number 373 and position 28: The 'http://cyclonedx.org/schema/bom/1.4:id' element is invalid - The value 'NOASSERTION' is invalid according to its datatype 'http://cyclonedx.org/schema/spdx:licenseId' - The Enumeration constraint failed.

The resulting BOMs are attached.

BOMs.zip

Conversion of SBOM in XML or JSON format with two licenes creates a wrong JSON or XML SBOM

I copied the example of https://cyclonedx.org/use-cases/#openchain-conformance in an XML and a JSON file (see "CycloneDX - OpenChain conformance.xml" and "CycloneDX - OpenChain conformance.json" in the ZIP file). I'm validated both and there are valid SBOM files.

If I convert the XML file with this tool to JSON then the file is valid but the second license ("LGPL-2.1-only") in evidence is missing (see "CycloneDX - OpenChain conformance - Converted.json" in the ZIP file).

If I convert the JSON file with this tool to XML then the file is an invalid SBOM file (see "CycloneDX - OpenChain conformance - Converted.xm"l in the ZIP file). I got the message "Validation failed at line number 24 and position 10: The element 'evidence' in namespace 'http://cyclonedx.org/schema/bom/1.5' has invalid child element 'licenses' in namespace 'http://cyclonedx.org/schema/bom/1.5'. List of possible elements expected: 'copyright' in namespace 'http://cyclonedx.org/schema/bom/1.5' as well as any element in namespace '##other'. "
CycloneDX - OpenChain conformance.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.