You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: schema/bom-1.5.proto
+66-20Lines changed: 66 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@ message Bom {
29
29
repeatedExternalReferenceexternal_references=7;
30
30
// Provides the ability to document dependency relationships.
31
31
repeatedDependencydependencies=8;
32
-
// Provides the ability to document aggregate completeness
32
+
// Compositions describe constituent parts (including components, services, and dependency relationships) and their completeness. The completeness of vulnerabilities expressed in a BOM may also be described.
33
33
repeatedCompositioncompositions=9;
34
34
// Vulnerabilities identified in components or services.
// An enumeration of identified weaknesses, threats, and countermeasures, dataflow diagram (DFD), attack tree, and other supporting documentation in human-readable or machine-readable format
221
221
EXTERNAL_REFERENCE_TYPE_THREAT_MODEL=17;
222
+
// The defined assumptions, goals, and capabilities of an adversary.
223
+
EXTERNAL_REFERENCE_TYPE_ADVERSARY_MODEL=18;
224
+
// Identifies and analyzes the potential of future events that may negatively impact individuals, assets, and/or the environment. Risk assessments may also include judgments on the tolerability of each risk.
225
+
EXTERNAL_REFERENCE_TYPE_RISK_ASSESSMENT=19;
222
226
// The location where a component was published to. This is often the same as "distribution" but may also include specialized publishing processes that act as an intermediary
223
-
EXTERNAL_REFERENCE_TYPE_DISTRIBUTION_INTAKE=18;
227
+
EXTERNAL_REFERENCE_TYPE_DISTRIBUTION_INTAKE=20;
224
228
// A Vulnerability Disclosure Report (VDR) which asserts the known and previously unknown vulnerabilities that affect a component, service, or product including the analysis and findings describing the impact (or lack of impact) that the reported vulnerability has on a component, service, or product
// A Vulnerability Exploitability eXchange (VEX) which asserts the known vulnerabilities that do not affect a product, product family, or organization, and optionally the ones that do. The VEX should include the analysis and findings describing the impact (or lack of impact) that the reported vulnerability has on the product, product family, or organization
// Results from an authorized simulated cyberattack on a component or service, otherwise known as a penetration test
229
-
EXTERNAL_REFERENCE_TYPE_PENTEST_REPORT=21;
233
+
EXTERNAL_REFERENCE_TYPE_PENTEST_REPORT=23;
230
234
// SARIF or proprietary machine or human-readable report for which static analysis has identified code quality, security, and other potential issues with the source code
// A model card describes the intended uses of a machine learning model, potential limitations, biases, ethical considerations, training parameters, datasets used to train the model, performance metrics, and other relevant data useful for ML transparency.
247
-
EXTERNAL_REFERENCE_TYPE_MODEL_CARD=30;
251
+
EXTERNAL_REFERENCE_TYPE_MODEL_CARD=32;
248
252
}
249
253
250
254
enumHashAlg {
@@ -416,6 +420,36 @@ message Metadata {
416
420
optionalLicenseChoicelicenses=7;
417
421
// Specifies optional, custom, properties
418
422
repeatedPropertyproperties=8;
423
+
// The product lifecycle(s) that this BOM represents.
424
+
repeatedLifecycleslifecycles=9;
425
+
}
426
+
427
+
messageLifecycles {
428
+
oneofchoice {
429
+
// A pre-defined phase in the product lifecycle.
430
+
LifecyclePhasephase=1;
431
+
// The name of the lifecycle phase
432
+
stringname=2;
433
+
}
434
+
// The description of the lifecycle phase
435
+
optionalstringdescription=2;
436
+
}
437
+
438
+
enumLifecyclePhase {
439
+
// BOM produced early in the development lifecycle containing inventory of components and services that are proposed or planned to be used. The inventory may need to be procured, retrieved, or resourced prior to use.
440
+
LIFECYCLE_PHASE_DESIGN=0;
441
+
// BOM consisting of information obtained prior to a build process and may contain source files and development artifacts and manifests. The inventory may need to be resolved and retrieved prior to use.
442
+
LIFECYCLE_PHASE_PRE_BUILD=1;
443
+
// BOM consisting of information obtained during a build process where component inventory is available for use. The precise versions of resolved components are usually available at this time as well as the provenance of where the components were retrieved from.
444
+
LIFECYCLE_PHASE_BUILD=2;
445
+
// BOM consisting of information obtained after a build process has completed and the resulting components(s) are available for further analysis. Built components may exist as the result of a CI/CD process, may have been installed or deployed to a system or device, and may need to be retrieved or extracted from the system or device.
446
+
LIFECYCLE_PHASE_POST_BUILD=3;
447
+
// BOM produced that represents inventory that is running and operational. This may include staging or production environments and will generally encompass multiple SBOMs describing the applications and operating system, along with HBOMs describing the hardware that makes up the system. Operations Bill of Materials (OBOM) can provide full-stack inventory of runtime environments, configurations, and additional dependencies.
448
+
LIFECYCLE_PHASE_OPERATIONS=4;
449
+
// BOM consisting of information observed through network discovery providing point-in-time enumeration of embedded, on-premise, and cloud-native services such as server applications, connected devices, microservices, and serverless functions.
450
+
LIFECYCLE_PHASE_DISCOVERY=5;
451
+
// BOM containing inventory that will be, or has been retired from operations.
452
+
LIFECYCLE_PHASE_DECOMMISSION=6;
419
453
}
420
454
421
455
messageOrganizationalContact {
@@ -557,18 +591,26 @@ message Property {
557
591
}
558
592
559
593
enumAggregate {
560
-
// Default, no statement about the aggregate completeness is being made
594
+
// The relationship completeness is not specified.
561
595
AGGREGATE_NOT_SPECIFIED=0;
562
-
// The aggregate composition is complete
596
+
// The relationship is complete. No further relationships including constituent components, services, or dependencies are known to exist.
563
597
AGGREGATE_COMPLETE=1;
564
-
// The aggregate composition is incomplete
598
+
// The relationship is incomplete. Additional relationships exist and may include constituent components, services, or dependencies.
565
599
AGGREGATE_INCOMPLETE=2;
566
-
// The aggregate composition is incompletefor firstparty components, complete for third party components
600
+
// The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented.
567
601
AGGREGATE_INCOMPLETE_FIRST_PARTY_ONLY=3;
568
-
// The aggregate composition is incompletefor thirdparty components, complete for first party components
602
+
// The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented.
569
603
AGGREGATE_INCOMPLETE_THIRD_PARTY_ONLY=4;
570
-
// The aggregate composition completeness is unknown
604
+
// The relationship may be complete or incomplete. This usually signifies a 'best-effort' to obtain constituent components, services, or dependencies but the completeness is inconclusive.
571
605
AGGREGATE_UNKNOWN=5;
606
+
// The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented, limited specifically to those that are proprietary.
// The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented, limited specifically to those that are opensource.
// The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented, limited specifically to those that are proprietary.
// The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented, limited specifically to those that are opensource.
0 commit comments