Skip to content

Conversation

@stevespringett
Copy link
Member

Implements perspective model. Closes #736

@stevespringett stevespringett added this to the 2.0 milestone Dec 19, 2025
@stevespringett stevespringett self-assigned this Dec 19, 2025
@stevespringett stevespringett linked an issue Dec 19, 2025 that may be closed by this pull request
Signed-off-by: Steve Springett <[email protected]>
Signed-off-by: Steve Springett <[email protected]>
@stevespringett stevespringett marked this pull request as ready for review January 14, 2026 01:05
@stevespringett stevespringett requested a review from a team as a code owner January 14, 2026 01:05
@stevespringett stevespringett added request for comment RFC notice sent A public RFC notice was distributed to the CycloneDX mailing list for consideration labels Jan 14, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a new "perspective" model for CycloneDX 2.0, which enables domain-specific views into BOM documents. This allows different audiences to interpret and navigate data through their own conceptual lens using JSON path expressions and terminology mappings.

Changes:

  • Added comprehensive JSON schema for perspective model with support for predefined and custom domains
  • Integrated perspectives into main CycloneDX 2.0 schema
  • Added "perspective" as a new external reference type
  • Included test data demonstrating NTIA Minimum Elements perspective

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
schema/2.0/model/cyclonedx-perspective-2.0.schema.json Complete JSON schema definition for the perspective model with domains, mappings, and relevance
schema/2.0/cyclonedx-2.0.schema.json Integration of perspective schema into main CycloneDX schema
schema/2.0/model/cyclonedx-common-2.0.schema.json Addition of "perspective" external reference type
tools/src/test/resources/2.0/valid-perspective-2.0.json Test data showing NTIA Minimum Elements perspective with mappings

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://cyclonedx.org/schema/2.0/model/cyclonedx-perspective-2.0.schema.json",
"type": "null",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The root schema has "type": "null" which is incorrect. This schema defines object types (perspectives, perspective, etc.) in $defs, but the root type should not be "null". This should either be removed or changed to "type": "object" if the schema is intended to be used standalone. Given that this is a model schema meant to be referenced from other schemas, the type field at the root level should likely be omitted entirely.

Suggested change
"type": "null",

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CDX 2.0 related to release v2.0 proposed core enhancement request for comment RFC notice sent A public RFC notice was distributed to the CycloneDX mailing list for consideration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Add support for perspectives

2 participants