Ingest component licenses from CycloneDX SBOMs

Why are we doing this work

We need to parse the licenses field of CycloneDX JSON SBOMs, and expose it so that it can be used by the license scanner. It doesn't need to be stored in the database.

Relevant links

Non-functional requirements

This doesn't change the user experience and doesn't need to be documented.

We might need a feature flag if parsing the licenses field of components can raise exceptions, and make the parsing of the SBOM fail.

The impact on performance when parsing a Cyclone JSON SBOM should be negligible.

  • Documentation:
  • Feature flag:
  • Performance:
  • Testing: specs

Implementation plan

Verification steps

We can't have E2E tests until the licenses field is used by the license scanner.

Edited by Fabien Catteau