Add safety integrity level schema support - #1041
Open
devashridatta-dotcom wants to merge 2 commits into
Open
Conversation
devashridatta-dotcom
force-pushed
the
srap-safety-integrity-954
branch
from
August 24, 2026 16:06
56754a8 to
b7c5458
Compare
jkowalleck
reviewed
Aug 24, 2026
Signed-off-by: devashridatta-dotcom <252791751+devashridatta-dotcom@users.noreply.github.com>
devashridatta-dotcom
force-pushed
the
srap-safety-integrity-954
branch
from
August 24, 2026 16:43
b7c5458 to
73ec5a4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the small first-class safety-integrity classification discussed in #954 for the CycloneDX 2.0 schema line.
This PR is intentionally narrow. It does not try to move the full SRAP vocabulary into CycloneDX core. Instead, it implements the piece that appears to be missing from the existing 2.0 model: a standards-aligned, machine-readable way to express safety integrity classification in context.
What changes
safetyIntegrityLevelschema definition with scheme-gated levels forISO-26262,IEC-61508,DO-178C,IEC-62304, andEN-50128, plus a custom scheme option.safetyIntegrityLevelson blueprint asset classifications and requirements, keeping the assertion scoped to a system/context carrier rather than treating it as an intrinsic component property.hazard-analysisandsafety-caseexternal reference types for supporting safety evidence.EPSSas a vulnerability score method.safetyas a requirement type so safety requirements can be identified without relying only on free text.Why this is the narrow CycloneDX-native path
The discussion in #954 clarified that CycloneDX 2.0 already has first-class structures for most SRAP needs:
risksfor safety impact and risk linkage.perspectivesand blueprints for system/context views.criticalityfor contextual asset importance.vulnerabilitiesand VEX analysis for vulnerability impact.declarations,claims,attestations, andevidencefor assertion and evidence chains.definitions.requirementsfor safety requirements.The remaining core gap is safety integrity classification: ASIL, SIL, DAL, IEC 62304 software safety class, and similar scheme-specific levels. This PR focuses on that gap.
Relationship to SRAP
SRAP-style concepts such as
SafetyContextRelationship,ChangeTrigger,ChangeImpactAnalysis,RequirementVerification, andEvidenceRelationshipcan be represented today using existing CycloneDX structures and, where needed, profile-owned terms such assrap:*properties or structuredext:*extensions.Those broader SRAP terms should remain in the profile layer unless TC54 decides that any of them belong in CycloneDX core. This PR keeps the CycloneDX schema change small while preserving alignment with SPDX safety work.
Automotive/Product Security and Risk context
This also aligns with the emerging Product Security and Risk Working Group direction. Automotive is a good first use case because ISO 26262 and ASIL are common safety integrity concepts, and ASRG's move toward CycloneDX for automotive risk representation makes a consistent safety integrity vocabulary useful for downstream tooling and policy engines.
Validation
pnpm run test:v2.0:t2-json-schema-semanticpasses.safetyIntegrityLevelpass:ISO-26262+asil-daccepted.ISO-26262+sil-3rejected.IEC-62304+class-caccepted.Note:
pnpm run test:v2.0:t1-json-schema-validateand the functional test currently fail on a clean upstream2.0-devcheckout with the same unresolved reference:model/cyclonedx-common-2.0.schema.json#/$defs/extensiblePropertiesSo that failure appears inherited from the current
2.0-devtest wiring rather than introduced by this change.RFC question
Is this narrow
safetyIntegrityLevels[]change the right candidate to take through the 30-day RFC period, with the broader SRAP vocabulary handled as profile guidance or a companion schema?