@mitre/hdf-schema 3.4.0 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/go/hdf.go CHANGED
@@ -138,9 +138,6 @@ type HDFResults struct {
138
138
  }
139
139
 
140
140
  // Information on a baseline that was evaluated, including any findings.
141
- //
142
- // Shared metadata fields for baselines. Used in both standalone baseline documents and
143
- // evaluated baseline results.
144
141
  type EvaluatedBaseline struct {
145
142
  // The set of dependencies this baseline depends on.
146
143
  Depends []Dependency `json:"depends,omitempty"`
@@ -197,8 +194,7 @@ type EvaluatedBaseline struct {
197
194
  Version *string `json:"version,omitempty"`
198
195
  }
199
196
 
200
- // A dependency for a baseline. Can include relative paths or URLs for where to find the
201
- // dependency.
197
+ // A dependency for a baseline. Can include relative paths or URLs for where to find the dependency.
202
198
  type Dependency struct {
203
199
  // The branch name for a git repo.
204
200
  Branch *string `json:"branch,omitempty"`
@@ -232,9 +228,9 @@ type RequirementGroup struct {
232
228
  Title *string `json:"title,omitempty"`
233
229
  }
234
230
 
235
- // A typed input parameter that bridges governance requirements and scanner automation.
236
- // Inputs carry expected configuration values with type information, comparison operators,
237
- // and validation constraints, enabling traceability from policy through to scan results.
231
+ // A typed input parameter that bridges governance requirements and scanner automation. Inputs carry
232
+ // expected configuration values with type information, comparison operators, and validation
233
+ // constraints, enabling traceability from policy through to scan results.
238
234
  type Input struct {
239
235
  // Validation constraints for the input value.
240
236
  Constraints *InputConstraints `json:"constraints,omitempty"`
@@ -256,8 +252,6 @@ type Input struct {
256
252
  Value interface{} `json:"value,omitempty"`
257
253
  }
258
254
 
259
- // Validation constraints for the input value.
260
- //
261
255
  // Validation constraints for an input value.
262
256
  type InputConstraints struct {
263
257
  // Enumeration of permitted values.
@@ -270,27 +264,8 @@ type InputConstraints struct {
270
264
  Pattern *string `json:"pattern,omitempty"`
271
265
  }
272
266
 
273
- // Cryptographic integrity information for verifying this baseline has not been tampered
274
- // with.
275
- //
276
- // Cryptographic integrity information for verifying the HDF file has not been tampered
277
- // with. If algorithm is provided, checksum must also be provided, and vice versa.
278
- //
279
- // Cryptographic integrity information for verifying this file.
280
- //
281
- // Cryptographic integrity information for verifying this comparison document.
282
- //
283
- // Cryptographic integrity information for verifying this system document has not been
284
- // tampered with.
285
- //
286
- // Cryptographic integrity information for verifying this plan document has not been
287
- // tampered with.
288
- //
289
- // Cryptographic integrity information for verifying this amendments document has not been
290
- // tampered with.
291
- //
292
- // Cryptographic integrity information for verifying this evidence package has not been
293
- // tampered with.
267
+ // Cryptographic integrity information for verifying the HDF file has not been tampered with. If
268
+ // algorithm is provided, checksum must also be provided, and vice versa.
294
269
  type Integrity struct {
295
270
  // The hash algorithm used for the checksum.
296
271
  Algorithm *HashAlgorithm `json:"algorithm,omitempty"`
@@ -302,32 +277,7 @@ type Integrity struct {
302
277
  SignedBy *string `json:"signedBy,omitempty"`
303
278
  }
304
279
 
305
- // SHA-256 checksum of the original baseline definition file (before execution). This is an
306
- // immutable reference to the baseline as defined, used to detect tampering with baseline
307
- // requirements or metadata.
308
- //
309
280
  // Cryptographic checksum for baseline integrity verification.
310
- //
311
- // SHA-256 checksum of the previous amendment in chronological order. Creates a
312
- // tamper-evident chain of amendments (similar to blockchain). Null for the first amendment
313
- // on a requirement.
314
- //
315
- // SHA-256 checksum of the raw results before any amendments (statusOverrides or POAMs).
316
- // Used to detect tampering with test results. Compare with currentChecksum to verify
317
- // amendment integrity.
318
- //
319
- // Optional cryptographic checksum for verifying the integrity of remediation resources
320
- // fetched from the URI. Recommended for security when referencing external automation
321
- // scripts.
322
- //
323
- // Cryptographic checksum of the source document for integrity verification.
324
- //
325
- // Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null
326
- // for the first amendment.
327
- //
328
- // Cryptographic checksum for verifying the referenced document's integrity.
329
- //
330
- // Cryptographic checksum of the referenced artifact for integrity verification.
331
281
  type Checksum struct {
332
282
  // The hash algorithm used for the checksum.
333
283
  Algorithm HashAlgorithm `json:"algorithm"`
@@ -336,9 +286,6 @@ type Checksum struct {
336
286
  }
337
287
 
338
288
  // A requirement that has been evaluated, including any findings.
339
- //
340
- // Core requirement fields shared between baseline requirements and evaluated requirements.
341
- // Contains the fundamental requirement definition without assessment results.
342
289
  type EvaluatedRequirement struct {
343
290
  // Packages affected by this vulnerability finding. Vulnerability-finding-scoped — see
344
291
  // components[] on hdf-system for component-level package inventories. One entry per matched
@@ -435,14 +382,13 @@ type EvaluatedRequirement struct {
435
382
  }
436
383
 
437
384
  // Represents a package referenced by a vulnerability finding or by an amendment's scope. On
438
- // Evaluated_Requirement.affectedPackages it says 'this CVE affects these package versions'.
439
- // On Standalone_Override.affectedPackages it says 'this amendment is scoped to these
440
- // packages' (used by VEX, OSCAL POA&M, FedRAMP component-aware amendments). NOT a
441
- // system-level component identifier — see `components[]` on hdf-system for those. Validity
442
- // requires at least one of: (name + version + ecosystem), purl alone, or cpe alone. purl
443
- // and cpe are self-describing identifiers that encode name/version implicitly, so either
444
- // may stand on its own; the name+version+ecosystem combination is the explicit form for
445
- // sources without formal identifiers.
385
+ // Evaluated_Requirement.affectedPackages it says 'this CVE affects these package versions'. On
386
+ // Standalone_Override.affectedPackages it says 'this amendment is scoped to these packages' (used
387
+ // by VEX, OSCAL POA&M, FedRAMP component-aware amendments). NOT a system-level component identifier
388
+ // — see `components[]` on hdf-system for those. Validity requires at least one of: (name + version
389
+ // + ecosystem), purl alone, or cpe alone. purl and cpe are self-describing identifiers that encode
390
+ // name/version implicitly, so either may stand on its own; the name+version+ecosystem combination
391
+ // is the explicit form for sources without formal identifiers.
446
392
  type AffectedPackage struct {
447
393
  // Optional CPE 2.3 URI identifying the affected product. Validated leniently: only the
448
394
  // 'cpe:2.3:' prefix and the part-type letter ('a' application, 'h' hardware, 'o' operating
@@ -471,16 +417,12 @@ type AffectedPackage struct {
471
417
  Version *string `json:"version,omitempty"`
472
418
  }
473
419
 
474
- // Structured CVSS scoring data backing this override. Captures the rubric (which
475
- // Environmental/Threat metrics the consumer modified, the recomputed score) used to justify
476
- // a riskAdjustment. For other override types this is optional context.
477
- //
478
- // A CVSS (Common Vulnerability Scoring System) score record for a vulnerability finding.
479
- // Captures the vendor-supplied Base metric group and optional consumer-supplied Threat,
480
- // Environmental, and Supplemental metric groups. Supports all four CVSS major versions
481
- // (2.0, 3.0, 3.1, 4.0). Vector strings are validated against a permissive umbrella grammar;
482
- // semantic validation (correct metrics per version, correct values per metric) is performed
483
- // by the hdf-utilities `validateCvssVector` helper rather than at the schema layer.
420
+ // A CVSS (Common Vulnerability Scoring System) score record for a vulnerability finding. Captures
421
+ // the vendor-supplied Base metric group and optional consumer-supplied Threat, Environmental, and
422
+ // Supplemental metric groups. Supports all four CVSS major versions (2.0, 3.0, 3.1, 4.0). Vector
423
+ // strings are validated against a permissive umbrella grammar; semantic validation (correct metrics
424
+ // per version, correct values per metric) is performed by the hdf-utilities `validateCvssVector`
425
+ // helper rather than at the schema layer.
484
426
  type Cvss struct {
485
427
  // The Base score (0.0–10.0) computed from the base vector. Reflects the intrinsic,
486
428
  // vendor-published severity before consumer enrichment.
@@ -534,13 +476,9 @@ type Description struct {
534
476
  Label string `json:"label"`
535
477
  }
536
478
 
537
- // FIRST.org EPSS (Exploit Prediction Scoring System) score for this CVE finding. Used
538
- // alongside CVSS for prioritization — captures the probability the vulnerability will be
539
- // exploited.
540
- //
541
- // FIRST.org Exploit Prediction Scoring System (EPSS) data for a single vulnerability. All
542
- // three fields are required when an Epss object is present; the date disambiguates which
543
- // day's score this is, since EPSS recomputes daily.
479
+ // FIRST.org Exploit Prediction Scoring System (EPSS) data for a single vulnerability. All three
480
+ // fields are required when an Epss object is present; the date disambiguates which day's score this
481
+ // is, since EPSS recomputes daily.
544
482
  type Epss struct {
545
483
  // ISO 8601 date (YYYY-MM-DD) on which FIRST.org published this EPSS score.
546
484
  Date string `json:"date"`
@@ -554,8 +492,8 @@ type Epss struct {
554
492
  Score float64 `json:"score"`
555
493
  }
556
494
 
557
- // Supporting evidence for a finding or override, such as screenshots, code samples, log
558
- // excerpts, or URLs.
495
+ // Supporting evidence for a finding or override, such as screenshots, code samples, log excerpts,
496
+ // or URLs.
559
497
  type Evidence struct {
560
498
  // Timestamp when this evidence was captured. ISO 8601 format.
561
499
  CapturedAt *time.Time `json:"capturedAt,omitempty"`
@@ -576,41 +514,8 @@ type Evidence struct {
576
514
  Type EvidenceType `json:"type"`
577
515
  }
578
516
 
579
- // Identity of who or what captured this evidence.
580
- //
581
- // Represents an identity that performed an action, such as capturing evidence or applying
582
- // an override.
583
- //
584
- // Identity of who created this POA&M. For simple cases, use type 'simple' with just an
585
- // identifier.
586
- //
587
- // Identity of who completed this milestone.
588
- //
589
- // The identity that created this signature.
590
- //
591
- // Identity of who applied this override. For simple cases, use type 'simple' with just an
592
- // identifier.
593
- //
594
- // Identity of the person or system that approved this override.
595
- //
596
- // Team or individual responsible for this component. Enables per-component ownership when
597
- // different teams manage different parts of a system.
598
- //
599
- // The identity of the person or system responsible for executing the test. This could be a
600
- // human auditor manually completing a checklist, an automated CI/CD system, or a security
601
- // tool. Optional field to support both automated and manual HDF generation.
602
- //
603
- // Team or individual responsible for this system's authorization and compliance. Maps to
604
- // OSCAL responsible-party with role 'system-owner'.
605
- //
606
- // Default identity of who created this amendments document. Individual overrides may
607
- // specify their own appliedBy.
608
- //
609
- // Identity of the authorizing official who approved these amendments.
610
- //
611
- // Identity of who applied this amendment.
612
- //
613
- // Identity of who prepared this evidence package.
517
+ // Represents an identity that performed an action, such as capturing evidence or applying an
518
+ // override.
614
519
  type Identity struct {
615
520
  // Optional description of the identity or identity system, particularly useful when type is
616
521
  // 'other'.
@@ -688,21 +593,9 @@ type Milestone struct {
688
593
  Status MilestoneStatus `json:"status"`
689
594
  }
690
595
 
691
- // Optional digital signature for enhanced trust and non-repudiation.
692
- //
693
- // A digital signature following W3C Data Integrity Proofs pattern. Supports hardware
694
- // security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic
695
- // signing methods via JWK, PEM, or Base58 key formats.
696
- //
697
- // Optional digital signature for enhanced trust and non-repudiation. Supports hardware
698
- // security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other signing
699
- // methods.
700
- //
701
- // Digital signature for non-repudiation.
702
- //
703
- // Document-level digital signature covering all amendments.
704
- //
705
- // Digital signature covering the entire evidence package.
596
+ // A digital signature following W3C Data Integrity Proofs pattern. Supports hardware security
597
+ // tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic signing methods
598
+ // via JWK, PEM, or Base58 key formats.
706
599
  type Signature struct {
707
600
  // Challenge value from the verifier, used in challenge-response authentication.
708
601
  Challenge *string `json:"challenge,omitempty"`
@@ -726,10 +619,8 @@ type Signature struct {
726
619
  VerificationMethod VerificationMethod `json:"verificationMethod"`
727
620
  }
728
621
 
729
- // The verification method containing the public key for signature verification.
730
- //
731
- // Verification method containing the public key needed to verify a digital signature.
732
- // Supports multiple key formats including JWK (for RSA, EC), PEM, and Base58.
622
+ // Verification method containing the public key needed to verify a digital signature. Supports
623
+ // multiple key formats including JWK (for RSA, EC), PEM, and Base58.
733
624
  type VerificationMethod struct {
734
625
  // The entity that controls this verification method. Can be a DID, URI, or other identifier.
735
626
  Controller string `json:"controller"`
@@ -746,12 +637,6 @@ type VerificationMethod struct {
746
637
  }
747
638
 
748
639
  // A reference to an external document.
749
- //
750
- // A reference using the 'ref' field.
751
- //
752
- // A URL pointing at the reference.
753
- //
754
- // A URI pointing at the reference.
755
640
  type Reference struct {
756
641
  Ref *Ref `json:"ref,omitempty"`
757
642
  URL *string `json:"url,omitempty"`
@@ -782,8 +667,6 @@ type RequirementResult struct {
782
667
  Status ResultStatus `json:"status"`
783
668
  }
784
669
 
785
- // The explicit location of the requirement within the source code.
786
- //
787
670
  // The explicit location of a requirement within source code.
788
671
  type SourceLocation struct {
789
672
  // The line on which this requirement is located.
@@ -792,9 +675,9 @@ type SourceLocation struct {
792
675
  Ref *string `json:"ref,omitempty"`
793
676
  }
794
677
 
795
- // An intentional change to a requirement's compliance status and/or impact score. At least
796
- // one of status or impact must be set. Overrides change the effectiveStatus or impact of
797
- // the requirement. All overrides must have an expiration date to enforce periodic review.
678
+ // An intentional change to a requirement's compliance status and/or impact score. At least one of
679
+ // status or impact must be set. Overrides change the effectiveStatus or impact of the requirement.
680
+ // All overrides must have an expiration date to enforce periodic review.
798
681
  type StatusOverride struct {
799
682
  // Timestamp when this override was applied. ISO 8601 format.
800
683
  AppliedAt time.Time `json:"appliedAt"`
@@ -836,11 +719,8 @@ type StatusOverride struct {
836
719
  Type OverrideType `json:"type"`
837
720
  }
838
721
 
839
- // Override to the requirement's impact score. At least one of status or impact must be
840
- // set.
841
- //
842
- // An override to the requirement's impact score. The prior impact is the original result
843
- // value or the preceding override in the chain.
722
+ // An override to the requirement's impact score. The prior impact is the original result value or
723
+ // the preceding override in the chain.
844
724
  type ImpactOverride struct {
845
725
  // The overridden impact score (0.0–1.0).
846
726
  Value float64 `json:"value"`
@@ -858,44 +738,8 @@ type SupportedPlatform struct {
858
738
  Release *string `json:"release,omitempty"`
859
739
  }
860
740
 
861
- // A system component. Uses discriminated union pattern with 'type' field as discriminator.
862
- // Superset of Target with identity, external IDs, and SBOM support.
863
- //
864
- // A physical or virtual server, workstation, or network device.
865
- //
866
- // Base properties shared by all component types. Extends the Target concept with stable
867
- // identity, external references, generalized BOM attachment (boms[]), and unified artifact
868
- // integrity (integrity[]).
869
- //
870
- // A static container image (not running). Image integrity — formerly the 'digest' field —
871
- // is expressed via the shared Base_Component.integrity array.
872
- //
873
- // A running container instance.
874
- //
875
- // A container orchestration platform (Kubernetes, OpenShift, ECS, etc.).
876
- //
877
- // A cloud provider account (AWS account, Azure subscription, GCP project).
878
- //
879
- // A specific cloud resource (EC2 instance, S3 bucket, Azure VM, etc.).
880
- //
881
- // A code repository (for SAST tools).
882
- //
883
- // A running application or API (for DAST tools).
884
- //
885
- // A software artifact or dependency (for SCA tools). Package integrity — formerly the
886
- // 'checksum' field — is expressed via the shared Base_Component.integrity array.
887
- //
888
- // A network segment or network device.
889
- //
890
- // A database instance.
891
- //
892
- // A thin AI-model component: identity and correlation only (parallel to Host_Component's
893
- // fqdn/ip). All model detail — architecture, parameter count, serialization format, lineage
894
- // — lives in an attached ai-model BOM (boms[]), never on the component itself.
895
- //
896
- // A thin dataset component: identity and correlation only, symmetric with
897
- // AI_Model_Component. All dataset detail — record count, format, classification, lineage —
898
- // lives in an attached dataset BOM (boms[]), never on the component itself.
741
+ // A system component. Uses discriminated union pattern with 'type' field as discriminator. Superset
742
+ // of Target with identity, external IDs, and SBOM support.
899
743
  type Component struct {
900
744
  // Names of baselines that apply to this component.
901
745
  BaselineRefs []string `json:"baselineRefs,omitempty"`
@@ -1077,12 +921,10 @@ type BillOfMaterials struct {
1077
921
  UniqueID *string `json:"uniqueId,omitempty"`
1078
922
  }
1079
923
 
1080
- // Normalized dataset extension. Permitted only when bomType is dataset.
1081
- //
1082
- // Normalized dataset fields (SPDX 3.0 Dataset profile / MLCommons Croissant aligned). All
1083
- // optional; open for partial-fidelity passthrough of unmapped native fields. Symmetric with
1084
- // AI_Model_Extension: carries the dataset's own lineage (baseDatasetRefs/derivation) just
1085
- // as the model extension carries baseModelRef/adaptationType.
924
+ // Normalized dataset fields (SPDX 3.0 Dataset profile / MLCommons Croissant aligned). All optional;
925
+ // open for partial-fidelity passthrough of unmapped native fields. Symmetric with
926
+ // AI_Model_Extension: carries the dataset's own lineage (baseDatasetRefs/derivation) just as the
927
+ // model extension carries baseModelRef/adaptationType.
1086
928
  type DatasetBOMExtension struct {
1087
929
  // References to the source dataset(s) this one was derived from — a dataset componentId, or
1088
930
  // a dataset BOM uniqueId/URI when no component exists. The lineage edge parallel to
@@ -1116,13 +958,11 @@ type DatasetBOMExtension struct {
1116
958
  StatisticalProperties *string `json:"statisticalProperties,omitempty"`
1117
959
  }
1118
960
 
1119
- // Normalized ai-model extension. Permitted only when bomType is ai-model.
1120
- //
1121
- // Normalized AI-model fields, aligned to the CISA/G7 'SBOM for AI' minimum elements. All
1122
- // fields optional (standards-correct; only the EU AI Act makes a subset binding for
1123
- // high-risk/GPAI). Left open (additionalProperties: true) so a converter can carry unmapped
1124
- // native fields opaquely (partial-fidelity pattern). Subject name/version are inherited
1125
- // from the host aiModel component, not repeated here.
961
+ // Normalized AI-model fields, aligned to the CISA/G7 'SBOM for AI' minimum elements. All fields
962
+ // optional (standards-correct; only the EU AI Act makes a subset binding for high-risk/GPAI). Left
963
+ // open (additionalProperties: true) so a converter can carry unmapped native fields opaquely
964
+ // (partial-fidelity pattern). Subject name/version are inherited from the host aiModel component,
965
+ // not repeated here.
1126
966
  type AIModelBOMExtension struct {
1127
967
  // Lineage relationship to baseModelRef, adopting Hugging Face's base_model_relation
1128
968
  // vocabulary (the only typed lineage enum in the ecosystem).
@@ -1203,9 +1043,8 @@ type PerformanceMetric struct {
1203
1043
  Value *string `json:"value,omitempty"`
1204
1044
  }
1205
1045
 
1206
- // A single normalized software package entry within an sbom BOM. Minimal identity + version
1207
- // for querying/diffing; the full native record remains available via passthrough
1208
- // (document/ref).
1046
+ // A single normalized software package entry within an sbom BOM. Minimal identity + version for
1047
+ // querying/diffing; the full native record remains available via passthrough (document/ref).
1209
1048
  type SBOMPackage struct {
1210
1049
  // SPDX license identifiers/expressions for this package.
1211
1050
  Licenses []string `json:"licenses,omitempty"`
@@ -1217,8 +1056,8 @@ type SBOMPackage struct {
1217
1056
  Version *string `json:"version,omitempty"`
1218
1057
  }
1219
1058
 
1220
- // An override of a baseline input value for a specific component. Enables system-specific
1221
- // tailoring of baseline parameters.
1059
+ // An override of a baseline input value for a specific component. Enables system-specific tailoring
1060
+ // of baseline parameters.
1222
1061
  type InputOverride struct {
1223
1062
  // Identity of the person or system that approved this override.
1224
1063
  ApprovedBy *Identity `json:"approvedBy,omitempty"`
@@ -1233,19 +1072,7 @@ type InputOverride struct {
1233
1072
  Value interface{} `json:"value"`
1234
1073
  }
1235
1074
 
1236
- // Information about the tool that generated this file.
1237
- //
1238
1075
  // Information about the tool that generated this HDF file.
1239
- //
1240
- // The tool that generated this file.
1241
- //
1242
- // Information about the tool that generated this comparison.
1243
- //
1244
- // Information about the tool that generated this system document.
1245
- //
1246
- // Information about the tool that generated this plan.
1247
- //
1248
- // Information about the tool that generated this document.
1249
1076
  type Generator struct {
1250
1077
  // The name of the software that produced this HDF file. Example: 'gosec-to-hdf'.
1251
1078
  Name string `json:"name"`
@@ -1253,15 +1080,9 @@ type Generator struct {
1253
1080
  Version string `json:"version"`
1254
1081
  }
1255
1082
 
1256
- // Optional reference to automated remediation resources (Ansible playbooks, Terraform
1257
- // scripts, etc.) for fixing failing requirements found in this assessment.
1258
- //
1259
- // Reference to automated remediation resources for implementing security controls. Points
1260
- // to external automation content like Ansible playbooks, Terraform scripts, or
1261
- // vendor-provided remediation tools.
1262
- //
1263
- // Optional reference to automated remediation resources (Ansible playbooks, Terraform
1264
- // scripts, etc.) for implementing the security controls defined in this baseline.
1083
+ // Reference to automated remediation resources for implementing security controls. Points to
1084
+ // external automation content like Ansible playbooks, Terraform scripts, or vendor-provided
1085
+ // remediation tools.
1265
1086
  type Remediation struct {
1266
1087
  // Optional cryptographic checksum for verifying the integrity of remediation resources
1267
1088
  // fetched from the URI. Recommended for security when referencing external automation
@@ -1273,12 +1094,8 @@ type Remediation struct {
1273
1094
  URI string `json:"uri"`
1274
1095
  }
1275
1096
 
1276
- // Information about the test execution environment where the security tool was run.
1277
- // Distinct from targets (what is being tested).
1278
- //
1279
- // Information about the test execution environment. This is distinct from the target being
1280
- // scanned - the runner is where the security tool executes, while targets are what is being
1281
- // assessed.
1097
+ // Information about the test execution environment. This is distinct from the target being scanned
1098
+ // - the runner is where the security tool executes, while targets are what is being assessed.
1282
1099
  type Runner struct {
1283
1100
  // The CPU architecture of the runner system. Example: 'x86_64', 'arm64', 'aarch64'.
1284
1101
  Architecture *string `json:"architecture,omitempty"`
@@ -1309,8 +1126,6 @@ type Runner struct {
1309
1126
  Release *string `json:"release,omitempty"`
1310
1127
  }
1311
1128
 
1312
- // Statistics for the assessment run, including duration and result counts.
1313
- //
1314
1129
  // Statistics for the assessment run(s) such as duration and result counts.
1315
1130
  type Statistics struct {
1316
1131
  // How long (in seconds) this assessment run took.
@@ -1319,8 +1134,6 @@ type Statistics struct {
1319
1134
  Requirements *StatisticHash `json:"requirements,omitempty"`
1320
1135
  }
1321
1136
 
1322
- // Breakdowns of requirement statistics by result status.
1323
- //
1324
1137
  // Statistics for requirement results, grouped by status.
1325
1138
  type StatisticHash struct {
1326
1139
  // Statistics for requirements that encountered an error during assessment.
@@ -1335,28 +1148,14 @@ type StatisticHash struct {
1335
1148
  Passed *StatisticBlock `json:"passed,omitempty"`
1336
1149
  }
1337
1150
 
1338
- // Statistics for requirements that encountered an error during assessment.
1339
- //
1340
1151
  // Statistics for a given item, such as the total count.
1341
- //
1342
- // Statistics for requirements that failed.
1343
- //
1344
- // Statistics for requirements that are not applicable to the target.
1345
- //
1346
- // Statistics for requirements that were not reviewed (manual check required).
1347
- //
1348
- // Statistics for requirements that passed.
1349
1152
  type StatisticBlock struct {
1350
1153
  // The total count. Example: the total number of requirements in a given category for a run.
1351
1154
  Total int64 `json:"total"`
1352
1155
  }
1353
1156
 
1354
- // The security tool that produced the assessment data in this file.
1355
- //
1356
- // The security tool that produced the assessment data represented in this HDF file. Aligns
1357
- // with SARIF, OSCAL, and CycloneDX terminology.
1358
- //
1359
- // The security tool that produced the assessment data in this source.
1157
+ // The security tool that produced the assessment data represented in this HDF file. Aligns with
1158
+ // SARIF, OSCAL, and CycloneDX terminology.
1360
1159
  type Tool struct {
1361
1160
  // The file format, if it is a recognized named format shared by multiple tools. Examples:
1362
1161
  // 'SARIF', 'XCCDF'. Omit for tool-specific formats where the tool name already implies the
@@ -1369,11 +1168,8 @@ type Tool struct {
1369
1168
  Version *string `json:"version,omitempty"`
1370
1169
  }
1371
1170
 
1372
- // Information on the set of requirements that can be assessed, including baseline metadata
1373
- // and requirement definitions.
1374
- //
1375
- // Shared metadata fields for baselines. Used in both standalone baseline documents and
1376
- // evaluated baseline results.
1171
+ // Information on the set of requirements that can be assessed, including baseline metadata and
1172
+ // requirement definitions.
1377
1173
  type HDFBaseline struct {
1378
1174
  // The set of dependencies this baseline depends on.
1379
1175
  Depends []Dependency `json:"depends,omitempty"`
@@ -1417,9 +1213,6 @@ type HDFBaseline struct {
1417
1213
  }
1418
1214
 
1419
1215
  // A requirement definition without assessment results.
1420
- //
1421
- // Core requirement fields shared between baseline requirements and evaluated requirements.
1422
- // Contains the fundamental requirement definition without assessment results.
1423
1216
  type BaselineRequirement struct {
1424
1217
  // Array of labeled descriptions. At least one description with label 'default' must be
1425
1218
  // present. Convention: place default description first. Common labels: 'default', 'check',
@@ -1468,8 +1261,8 @@ type BaselineRequirement struct {
1468
1261
  VerificationMethod *VerificationMethodEnum `json:"verificationMethod,omitempty"`
1469
1262
  }
1470
1263
 
1471
- // Structured comparison between two or more HDF security assessment documents. Supports
1472
- // temporal, baseline, fleet, and multi-source comparison modes.
1264
+ // Structured comparison between two or more HDF security assessment documents. Supports temporal,
1265
+ // baseline, fleet, and multi-source comparison modes.
1473
1266
  type HDFComparison struct {
1474
1267
  // Map of annotation IDs to annotation objects, providing context or action items for
1475
1268
  // requirement diffs.
@@ -1632,8 +1425,6 @@ type Value struct {
1632
1425
  Value interface{} `json:"value"`
1633
1426
  }
1634
1427
 
1635
- // Configuration for how requirements were matched across sources.
1636
- //
1637
1428
  // Configuration for how requirements are matched across sources.
1638
1429
  type MatchingConfig struct {
1639
1430
  // Ordered list of fallback strategies tried when the primary strategy fails to find a match.
@@ -1740,8 +1531,6 @@ type ComparisonSummary struct {
1740
1531
  Updated *int64 `json:"updated,omitempty"`
1741
1532
  }
1742
1533
 
1743
- // State counts broken down by severity level.
1744
- //
1745
1534
  // Breakdown of state counts by severity level.
1746
1535
  type SeverityBreakdown struct {
1747
1536
  // State counts for critical severity requirements.
@@ -1754,15 +1543,7 @@ type SeverityBreakdown struct {
1754
1543
  Medium *StateCounts `json:"medium,omitempty"`
1755
1544
  }
1756
1545
 
1757
- // State counts for critical severity requirements.
1758
- //
1759
1546
  // Counts of requirements in each state.
1760
- //
1761
- // State counts for high severity requirements.
1762
- //
1763
- // State counts for low severity requirements.
1764
- //
1765
- // State counts for medium severity requirements.
1766
1547
  type StateCounts struct {
1767
1548
  // Number of requirements present only in the old source.
1768
1549
  Absent *int64 `json:"absent,omitempty"`
@@ -1802,8 +1583,8 @@ type PerSourceSummary struct {
1802
1583
  Updated *int64 `json:"updated,omitempty"`
1803
1584
  }
1804
1585
 
1805
- // Describes a system's authorization boundary, components, and interconnections. Maps to
1806
- // OSCAL SSP system-characteristics and FedRAMP system inventory.
1586
+ // Describes a system's authorization boundary, components, and interconnections. Maps to OSCAL SSP
1587
+ // system-characteristics and FedRAMP system inventory.
1807
1588
  type HDFSystem struct {
1808
1589
  // Date the current authorization status was granted. ISO 8601 format.
1809
1590
  AuthorizationDate *time.Time `json:"authorizationDate,omitempty"`
@@ -1857,10 +1638,10 @@ type HDFSystem struct {
1857
1638
  Version *string `json:"version,omitempty"`
1858
1639
  }
1859
1640
 
1860
- // Declares a control's designation within a system — whether it is common (provided by
1861
- // another component or system), system-specific (implemented locally), or hybrid (shared
1862
- // responsibility). Maps to NIST SP 800-53 Appendix C control designations and OSCAL SSP
1863
- // by-component provided/inherited semantics.
1641
+ // Declares a control's designation within a system — whether it is common (provided by another
1642
+ // component or system), system-specific (implemented locally), or hybrid (shared responsibility).
1643
+ // Maps to NIST SP 800-53 Appendix C control designations and OSCAL SSP by-component
1644
+ // provided/inherited semantics.
1864
1645
  type ControlDesignation struct {
1865
1646
  // The control identifier (e.g., 'SC-7', 'AC-2 (1)'). Must match a NIST tag in a baseline
1866
1647
  // requirement's tags.
@@ -1883,9 +1664,9 @@ type ControlDesignation struct {
1883
1664
  SystemRef *string `json:"systemRef,omitempty"`
1884
1665
  }
1885
1666
 
1886
- // A data flow between two endpoints. The 'from' endpoint is always a local component; the
1887
- // 'to' endpoint can be local, cross-system, or external. Use 'direction' to indicate
1888
- // whether data flows one-way or both ways.
1667
+ // A data flow between two endpoints. The 'from' endpoint is always a local component; the 'to'
1668
+ // endpoint can be local, cross-system, or external. Use 'direction' to indicate whether data flows
1669
+ // one-way or both ways.
1889
1670
  type DataFlow struct {
1890
1671
  // Authentication mechanism used for this connection. Examples: 'mTLS', 'OAuth2', 'API key',
1891
1672
  // 'SAML', 'Kerberos'.
@@ -1908,8 +1689,8 @@ type DataFlow struct {
1908
1689
  To interface{} `json:"to"`
1909
1690
  }
1910
1691
 
1911
- // Defines an assessment plan — what baselines to run against which targets, with resolved
1912
- // inputs and scheduling. Maps to OSCAL Assessment Plan.
1692
+ // Defines an assessment plan — what baselines to run against which targets, with resolved inputs
1693
+ // and scheduling. Maps to OSCAL Assessment Plan.
1913
1694
  type HDFPlan struct {
1914
1695
  // The assessments to perform. Each assessment pairs a baseline with targets and resolved
1915
1696
  // inputs.
@@ -1938,8 +1719,8 @@ type HDFPlan struct {
1938
1719
  Version *string `json:"version,omitempty"`
1939
1720
  }
1940
1721
 
1941
- // A single assessment within a plan — defines which baseline to run against which targets
1942
- // with what configuration.
1722
+ // A single assessment within a plan — defines which baseline to run against which targets with what
1723
+ // configuration.
1943
1724
  type Assessment struct {
1944
1725
  // Reference to the baseline to evaluate. May be a baseline name (e.g. 'RHEL9-STIG'), a
1945
1726
  // relative path to an HDF Baseline document (e.g. 'rhel9-stig.hdf-baseline.json'), or an
@@ -1960,8 +1741,6 @@ type Assessment struct {
1960
1741
  TargetSelector map[string]string `json:"targetSelector,omitempty"`
1961
1742
  }
1962
1743
 
1963
- // Runner/scanner configuration for this assessment.
1964
- //
1965
1744
  // Configuration for the assessment runner/scanner.
1966
1745
  type RunnerConfig struct {
1967
1746
  // Name of the assessment runner. Example: 'cinc-auditor', 'inspec', 'openscap'.
@@ -1970,8 +1749,6 @@ type RunnerConfig struct {
1970
1749
  Version *string `json:"version,omitempty"`
1971
1750
  }
1972
1751
 
1973
- // Optional scheduling configuration for recurring assessments.
1974
- //
1975
1752
  // Scheduling configuration for recurring assessments.
1976
1753
  type Schedule struct {
1977
1754
  // Cron expression for recurring assessments. Example: '0 2 1 * *' (2 AM on the 1st of each
@@ -1987,8 +1764,8 @@ type Schedule struct {
1987
1764
  StartDate *time.Time `json:"startDate,omitempty"`
1988
1765
  }
1989
1766
 
1990
- // Waivers, attestations, and POA&Ms that modify requirement compliance status or impact.
1991
- // Amendments are standalone documents that can be applied to results via merge operations.
1767
+ // Waivers, attestations, and POA&Ms that modify requirement compliance status or impact. Amendments
1768
+ // are standalone documents that can be applied to results via merge operations.
1992
1769
  type HDFAmendments struct {
1993
1770
  // Unique identifier for this amendments document. Useful for cross-referencing when
1994
1771
  // multiple amendment documents target the same results.
@@ -2019,18 +1796,18 @@ type HDFAmendments struct {
2019
1796
  Version *string `json:"version,omitempty"`
2020
1797
  }
2021
1798
 
2022
- // A standalone override to a requirement's compliance status or risk impact. Validation has
2023
- // two branches gated on 'type': when type is 'operationalRequirement', neither 'status' nor
2024
- // 'impact' may be set — the override records accepted risk without changing the finding
2025
- // (documentation-only). For all other types, at least one of 'status' or 'impact' must be
2026
- // set. This rule aligns with: (1) OSCAL Assessment Results — finding.target.status and
1799
+ // A standalone override to a requirement's compliance status or risk impact. Validation has two
1800
+ // branches gated on 'type': when type is 'operationalRequirement', neither 'status' nor 'impact'
1801
+ // may be set — the override records accepted risk without changing the finding
1802
+ // (documentation-only). For all other types, at least one of 'status' or 'impact' must be set. This
1803
+ // rule aligns with: (1) OSCAL Assessment Results — finding.target.status and
2027
1804
  // finding.associated-risk[].facet[] are separate axes
2028
- // (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2)
2029
- // FedRAMP deviation request types — Risk Adjustment changes impact only, Operational
2030
- // Requirement documents acceptance only, False Positive changes status
2031
- // (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3)
2032
- // NIST SP 800-37 RMF — risk response (accept/mitigate/transfer) is a separate step from
2033
- // control assessment status (https://csrc.nist.gov/pubs/sp/800/37/r2/final).
1805
+ // (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2) FedRAMP
1806
+ // deviation request types — Risk Adjustment changes impact only, Operational Requirement documents
1807
+ // acceptance only, False Positive changes status
1808
+ // (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3) NIST SP
1809
+ // 800-37 RMF — risk response (accept/mitigate/transfer) is a separate step from control assessment
1810
+ // status (https://csrc.nist.gov/pubs/sp/800/37/r2/final).
2034
1811
  type StandaloneOverride struct {
2035
1812
  // Software packages this amendment is scoped to, distinct from componentRef (which scopes
2036
1813
  // to an HDF-internal Component by UUID). Use when the source amendment format references
@@ -2089,9 +1866,8 @@ type StandaloneOverride struct {
2089
1866
  Type OverrideType `json:"type"`
2090
1867
  }
2091
1868
 
2092
- // Bundles references to all HDF documents for audit, authorization, and compliance review.
2093
- // Each content entry references a document by type, URI, and checksum for integrity
2094
- // verification.
1869
+ // Bundles references to all HDF documents for audit, authorization, and compliance review. Each
1870
+ // content entry references a document by type, URI, and checksum for integrity verification.
2095
1871
  type HDFEvidencePackage struct {
2096
1872
  // Summary of assessment completeness and compliance status.
2097
1873
  CompletenessCheck *CompletenessCheck `json:"completenessCheck,omitempty"`
@@ -2133,10 +1909,8 @@ type HDFEvidencePackage struct {
2133
1909
  Version *string `json:"version,omitempty"`
2134
1910
  }
2135
1911
 
2136
- // Summary of assessment completeness and compliance status.
2137
- //
2138
- // Informational summary of assessment completeness. Not authoritative — tools should
2139
- // compute these from the referenced documents.
1912
+ // Informational summary of assessment completeness. Not authoritative — tools should compute these
1913
+ // from the referenced documents.
2140
1914
  type CompletenessCheck struct {
2141
1915
  // Whether all baselines referenced by system components have assessment results.
2142
1916
  AllBaselinesAssessed *bool `json:"allBaselinesAssessed,omitempty"`
@@ -2152,8 +1926,6 @@ type CompletenessCheck struct {
2152
1926
  UnresolvedPoams *int64 `json:"unresolvedPoams,omitempty"`
2153
1927
  }
2154
1928
 
2155
- // SBOM coverage across system components.
2156
- //
2157
1929
  // SBOM coverage statistics for the system.
2158
1930
  type SBOMCoverage struct {
2159
1931
  // Number of system components that have an associated SBOM.
@@ -2177,10 +1949,10 @@ type ContentReference struct {
2177
1949
  URI string `json:"uri"`
2178
1950
  }
2179
1951
 
2180
- // A reference to external native-format evidence (log/telemetry corpus or other artifact)
2181
- // carried by URI + integrity hash + format discriminator. Reference-only: the artifact is
2182
- // never embedded (corpora can be huge) or transcoded (that would be lossy) — it stays
2183
- // canonical in its native format and HDF acts as the structured index.
1952
+ // A reference to external native-format evidence (log/telemetry corpus or other artifact) carried
1953
+ // by URI + integrity hash + format discriminator. Reference-only: the artifact is never embedded
1954
+ // (corpora can be huge) or transcoded (that would be lossy) — it stays canonical in its native
1955
+ // format and HDF acts as the structured index.
2184
1956
  type ExternalEvidenceReference struct {
2185
1957
  // Cryptographic checksum of the referenced artifact for integrity verification.
2186
1958
  Checksum *Checksum `json:"checksum,omitempty"`
@@ -2203,10 +1975,7 @@ type ExternalEvidenceReference struct {
2203
1975
  URI string `json:"uri"`
2204
1976
  }
2205
1977
 
2206
- // Optional descriptive metadata about the referenced corpus. Does not affect integrity.
2207
- //
2208
- // Descriptive metadata about a referenced external evidence corpus. Does not affect
2209
- // integrity.
1978
+ // Descriptive metadata about a referenced external evidence corpus. Does not affect integrity.
2210
1979
  type ExternalEvidenceMetadata struct {
2211
1980
  // The tool/pipeline that collected or produced the corpus. Example: 'aws-security-lake',
2212
1981
  // 'elastic-agent'.
@@ -2217,8 +1986,6 @@ type ExternalEvidenceMetadata struct {
2217
1986
  TimeRange *ExternalEvidenceTimeRange `json:"timeRange,omitempty"`
2218
1987
  }
2219
1988
 
2220
- // The time window the referenced evidence covers.
2221
- //
2222
1989
  // The time window a referenced external evidence corpus covers.
2223
1990
  type ExternalEvidenceTimeRange struct {
2224
1991
  // End of the time window the corpus covers (ISO 8601).
@@ -2227,8 +1994,6 @@ type ExternalEvidenceTimeRange struct {
2227
1994
  Start *time.Time `json:"start,omitempty"`
2228
1995
  }
2229
1996
 
2230
- // The comparison operator used when evaluating this input against observed values.
2231
- //
2232
1997
  // Comparison operator for evaluating the input value against observed values. Numeric:
2233
1998
  // eq/ne/lt/le/gt/ge. String: eq/ne/contains/matches. Collection: in/notIn.
2234
1999
  type ComparisonOperator string
@@ -2246,8 +2011,6 @@ const (
2246
2011
  NotIn ComparisonOperator = "notIn"
2247
2012
  )
2248
2013
 
2249
- // The data type of this input.
2250
- //
2251
2014
  // The data type of the input value. Aligns with InSpec input types.
2252
2015
  type InputType string
2253
2016
 
@@ -2260,10 +2023,8 @@ const (
2260
2023
  String InputType = "String"
2261
2024
  )
2262
2025
 
2263
- // The hash algorithm used for the checksum.
2264
- //
2265
- // Supported cryptographic hash algorithms for checksums and integrity verification. blake3
2266
- // covers container-image and other artifact digests that use it.
2026
+ // Supported cryptographic hash algorithms for checksums and integrity verification. blake3 covers
2027
+ // container-image and other artifact digests that use it.
2267
2028
  type HashAlgorithm string
2268
2029
 
2269
2030
  const (
@@ -2320,15 +2081,9 @@ const (
2320
2081
  Technical ControlType = "technical"
2321
2082
  )
2322
2083
 
2323
- // Qualitative severity band corresponding to baseScore. CVSS 2.0 does not natively use
2324
- // 'none' or 'critical' bands; map accordingly when populating.
2325
- //
2326
2084
  // Qualitative CVSS severity band. Aligns with FIRST/NVD bands: none=0.0, low=0.1-3.9,
2327
- // medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum
2328
- // used on Requirement_Core (which includes 'informational').
2329
- //
2330
- // Qualitative severity band corresponding to computedScore. Same band convention as
2331
- // baseSeverity.
2085
+ // medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum used on
2086
+ // Requirement_Core (which includes 'informational').
2332
2087
  type CVSSSeverity string
2333
2088
 
2334
2089
  const (
@@ -2350,29 +2105,19 @@ const (
2350
2105
  The40 Version = "4.0"
2351
2106
  )
2352
2107
 
2353
- // The type of the most recent non-expired override or POAM governing this requirement.
2354
- // Indicates why the requirement is in its current state (e.g., waiver, falsePositive,
2355
- // riskAdjustment) or what remediation is being tracked (poam). Absent when no overrides or
2356
- // POAMs apply.
2357
- //
2358
- // The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
2359
- // accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
2360
- // remediation tracked (no status change). 'inherited': control provided by another
2361
- // component or system. 'falsePositive': scanner incorrectly identified a finding — for
2362
- // compliance scans (STIG, CIS), the check actually passes, so status is typically set to
2363
- // 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
2364
- // this system, so status is typically set to 'notApplicable'. The disposition field on the
2365
- // requirement distinguishes false positives from genuinely not-applicable findings.
2366
- // 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
2367
- // Adjustment); does not change pass/fail status, only impact via the impact field.
2368
- // 'operationalRequirement': deviation required by operational constraints (FedRAMP
2369
- // Operational Requirement); the finding cannot be remediated because the system requires
2370
- // the affected functionality. Remains an open risk. Migration note: 'exception' was removed
2371
- // in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
2372
- //
2373
- // The type of override applied to this requirement.
2374
- //
2375
- // The type of amendment.
2108
+ // The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk accepted
2109
+ // by Authorizing Official. 'attestation': manually verified by assessor. 'poam': remediation
2110
+ // tracked (no status change). 'inherited': control provided by another component or system.
2111
+ // 'falsePositive': scanner incorrectly identified a finding — for compliance scans (STIG, CIS), the
2112
+ // check actually passes, so status is typically set to 'passed'; for vulnerability scans (CVE,
2113
+ // SCA), the flagged vulnerability does not apply to this system, so status is typically set to
2114
+ // 'notApplicable'. The disposition field on the requirement distinguishes false positives from
2115
+ // genuinely not-applicable findings. 'riskAdjustment': impact score adjusted based on environmental
2116
+ // context (FedRAMP Risk Adjustment); does not change pass/fail status, only impact via the impact
2117
+ // field. 'operationalRequirement': deviation required by operational constraints (FedRAMP
2118
+ // Operational Requirement); the finding cannot be remediated because the system requires the
2119
+ // affected functionality. Remains an open risk. Migration note: 'exception' was removed in v3.1.0 —
2120
+ // use 'waiver' with status 'notApplicable' instead.
2376
2121
  type OverrideType string
2377
2122
 
2378
2123
  const (
@@ -2385,20 +2130,9 @@ const (
2385
2130
  RiskAdjustment OverrideType = "riskAdjustment"
2386
2131
  )
2387
2132
 
2388
- // The current effective compliance status of this requirement after applying the most
2389
- // recent non-expired override with a status field, or computed from results (worst-wins) if
2390
- // no status-bearing overrides exist.
2391
- //
2392
- // The status of an individual test result. 'notApplicable' indicates the requirement does
2393
- // not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
2394
- // requires manual verification).
2395
- //
2396
- // The status of this test within the requirement. Example: 'failed'.
2397
- //
2398
- // The new status this override sets for the requirement. Optional when only impact is being
2399
- // overridden.
2400
- //
2401
- // The new status this amendment sets. Optional when only impact is being overridden.
2133
+ // The status of an individual test result. 'notApplicable' indicates the requirement does not apply
2134
+ // to the target. 'notReviewed' indicates the requirement was not assessed (e.g., requires manual
2135
+ // verification).
2402
2136
  type ResultStatus string
2403
2137
 
2404
2138
  const (
@@ -2460,9 +2194,6 @@ const (
2460
2194
  VendorDependency POAMType = "vendorDependency"
2461
2195
  )
2462
2196
 
2463
- // Explicit severity rating. Typically derived from impact score but provided explicitly for
2464
- // clarity.
2465
- //
2466
2197
  // Severity rating for a requirement. Typically derived from the numeric impact score.
2467
2198
  type Severity string
2468
2199
 
@@ -2474,28 +2205,21 @@ const (
2474
2205
  SeverityMedium Severity = "medium"
2475
2206
  )
2476
2207
 
2477
- // Structured controlled-vocabulary classification for why this override applies.
2478
- // Complements (does not replace) the free-text 'reason' field. Most useful on falsePositive
2479
- // and attestation overrides where the structured category enables filtering and lossless
2480
- // round-trip with VEX / OSCAL / FedRAMP DR. See the Justification primitive for the
2481
- // precedent vocabulary and rationale.
2482
- //
2483
- // Structured controlled-vocabulary reason for an override, complementing the free-text
2484
- // 'reason' field. 'reason' carries the human-readable rationale an auditor reads;
2485
- // 'justification' carries the machine-readable category enabling filtering, aggregation,
2486
- // and lossless round-trip with structured ecosystems (VEX, OSCAL, FedRAMP DR). Both fields
2487
- // may be present simultaneously and are NOT redundant: 'reason' explains the specific
2488
- // circumstance; 'justification' classifies it. Authors SHOULD populate both when a
2489
- // controlled-vocabulary value applies — the enum value alone is not self-explanatory to an
2490
- // auditor. The vocabulary is drawn from the VEX ecosystem: the first five values are common
2491
- // across OpenVEX, CSAF VEX, and CycloneDX VEX; the remaining six (requires_configuration /
2492
- // requires_dependency / requires_environment / protected_by_compiler / protected_at_runtime
2493
- // / protected_at_perimeter) are CycloneDX-specific and describe why the vulnerable code
2494
- // path is unreachable in the deployed configuration. The enum is extended additively across
2495
- // schema versions as other ecosystems' controlled vocabularies are integrated; documents
2496
- // using values added in a newer schema version will fail validation against an older
2497
- // schema. Consumers SHOULD validate against the schema version declared by the document
2498
- // ($schema) rather than assume a fixed vocabulary.
2208
+ // Structured controlled-vocabulary reason for an override, complementing the free-text 'reason'
2209
+ // field. 'reason' carries the human-readable rationale an auditor reads; 'justification' carries
2210
+ // the machine-readable category enabling filtering, aggregation, and lossless round-trip with
2211
+ // structured ecosystems (VEX, OSCAL, FedRAMP DR). Both fields may be present simultaneously and are
2212
+ // NOT redundant: 'reason' explains the specific circumstance; 'justification' classifies it.
2213
+ // Authors SHOULD populate both when a controlled-vocabulary value applies — the enum value alone is
2214
+ // not self-explanatory to an auditor. The vocabulary is drawn from the VEX ecosystem: the first
2215
+ // five values are common across OpenVEX, CSAF VEX, and CycloneDX VEX; the remaining six
2216
+ // (requires_configuration / requires_dependency / requires_environment / protected_by_compiler /
2217
+ // protected_at_runtime / protected_at_perimeter) are CycloneDX-specific and describe why the
2218
+ // vulnerable code path is unreachable in the deployed configuration. The enum is extended
2219
+ // additively across schema versions as other ecosystems' controlled vocabularies are integrated;
2220
+ // documents using values added in a newer schema version will fail validation against an older
2221
+ // schema. Consumers SHOULD validate against the schema version declared by the document ($schema)
2222
+ // rather than assume a fixed vocabulary.
2499
2223
  type Justification string
2500
2224
 
2501
2225
  const (
@@ -2512,19 +2236,12 @@ const (
2512
2236
  VulnerableCodeNotPresent Justification = "vulnerable_code_not_present"
2513
2237
  )
2514
2238
 
2515
- // How this requirement is intended to be verified. Disambiguates the two cases that null
2516
- // 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
2517
- // to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
2518
- // exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
2519
- // runs without operator action; 'hybrid' = part automated, part manual. Optional: when
2520
- // omitted, consumers should not infer a default.
2521
- //
2522
- // How a requirement is intended to be verified. Disambiguates the two cases that null
2523
- // 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
2524
- // to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
2525
- // exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
2526
- // runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
2527
- // disambiguate from the unrelated Verification_Method DID-context struct.
2239
+ // How a requirement is intended to be verified. Disambiguates the two cases that null 'code'
2240
+ // overloads: 'manual-by-design' (the requirement is statement-form and not amenable to automation,
2241
+ // e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could exist but does not yet,
2242
+ // e.g. a STIG rule lacking a fix). 'automated' = a check exists and runs without operator action;
2243
+ // 'hybrid' = part automated, part manual. Named '_Enum' to disambiguate from the unrelated
2244
+ // Verification_Method DID-context struct.
2528
2245
  type VerificationMethodEnum string
2529
2246
 
2530
2247
  const (
@@ -2587,8 +2304,6 @@ const (
2587
2304
  Repository TargetType = "repository"
2588
2305
  )
2589
2306
 
2590
- // The category of this annotation.
2591
- //
2592
2307
  // The category of an annotation attached to a comparison.
2593
2308
  type AnnotationCategory string
2594
2309
 
@@ -2612,13 +2327,11 @@ const (
2612
2327
  BaselineDiffStateUpdated BaselineDiffState = "updated"
2613
2328
  )
2614
2329
 
2615
- // The mode of comparison being performed.
2616
- //
2617
- // The mode of comparison. 'temporal' compares the same target over time. 'baseline'
2618
- // compares against a golden reference. 'fleet' compares across multiple systems.
2619
- // 'multiSource' compares outputs from different scanners. 'baselineEvolution' compares two
2620
- // baseline documents to detect requirement changes between versions. 'systemDrift' compares
2621
- // two system documents to detect component-level changes.
2330
+ // The mode of comparison. 'temporal' compares the same target over time. 'baseline' compares
2331
+ // against a golden reference. 'fleet' compares across multiple systems. 'multiSource' compares
2332
+ // outputs from different scanners. 'baselineEvolution' compares two baseline documents to detect
2333
+ // requirement changes between versions. 'systemDrift' compares two system documents to detect
2334
+ // component-level changes.
2622
2335
  type ComparisonMode string
2623
2336
 
2624
2337
  const (
@@ -2657,8 +2370,6 @@ const (
2657
2370
  TargetChanged ChangeReason = "targetChanged"
2658
2371
  )
2659
2372
 
2660
- // How the conflict was resolved.
2661
- //
2662
2373
  // How a conflict between multiple scanner results was resolved.
2663
2374
  type ConflictResolution string
2664
2375
 
@@ -2669,13 +2380,9 @@ const (
2669
2380
  Unresolved ConflictResolution = "unresolved"
2670
2381
  )
2671
2382
 
2672
- // The strategy that was used to match this requirement across sources.
2673
- //
2674
- // The strategy used to match requirements across sources. 'exactId' matches by identical
2675
- // IDs. 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework
2676
- // identifiers. 'fuzzyTitle'/'fuzzyContent' use text similarity.
2677
- //
2678
- // The primary strategy used to match requirements across sources.
2383
+ // The strategy used to match requirements across sources. 'exactId' matches by identical IDs.
2384
+ // 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework identifiers.
2385
+ // 'fuzzyTitle'/'fuzzyContent' use text similarity.
2679
2386
  type MatchStrategy string
2680
2387
 
2681
2388
  const (
@@ -2687,12 +2394,10 @@ const (
2687
2394
  NISTMatch MatchStrategy = "nistMatch"
2688
2395
  )
2689
2396
 
2690
- // The state of this requirement in the comparison.
2691
- //
2692
- // SARIF-compatible vocabulary extended for security. 'new' = present only in new source,
2693
- // 'absent' = present only in old, 'unchanged' = same effective status, 'updated' = status
2694
- // changed (generic), 'fixed' = was failing now passing, 'regressed' = was passing now
2695
- // failing, 'moved' = reorganized same content, 'split'/'merged' = reserved for v1.1.
2397
+ // SARIF-compatible vocabulary extended for security. 'new' = present only in new source, 'absent' =
2398
+ // present only in old, 'unchanged' = same effective status, 'updated' = status changed (generic),
2399
+ // 'fixed' = was failing now passing, 'regressed' = was passing now failing, 'moved' = reorganized
2400
+ // same content, 'split'/'merged' = reserved for v1.1.
2696
2401
  type RequirementState string
2697
2402
 
2698
2403
  const (
@@ -2735,8 +2440,6 @@ const (
2735
2440
  Xccdf OriginalFormat = "xccdf"
2736
2441
  )
2737
2442
 
2738
- // The role of this source in the comparison.
2739
- //
2740
2443
  // The role of a source document in the comparison.
2741
2444
  type SourceRole string
2742
2445
 
@@ -2748,8 +2451,6 @@ const (
2748
2451
  SourceRoleSystem SourceRole = "system"
2749
2452
  )
2750
2453
 
2751
- // Current Authorization to Operate (ATO) status.
2752
- //
2753
2454
  // Authorization to Operate (ATO) status for the system.
2754
2455
  type AuthorizationStatus string
2755
2456
 
@@ -2762,8 +2463,6 @@ const (
2762
2463
  Revoked AuthorizationStatus = "revoked"
2763
2464
  )
2764
2465
 
2765
- // FIPS 199 security categorization (impact level).
2766
- //
2767
2466
  // FIPS 199 security categorization level (impact level).
2768
2467
  type CategorizationLevel string
2769
2468
 
@@ -2793,10 +2492,8 @@ const (
2793
2492
  Unidirectional Direction = "unidirectional"
2794
2493
  )
2795
2494
 
2796
- // The type of assessment plan.
2797
- //
2798
- // The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed,
2799
- // 'hybrid' for both.
2495
+ // The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed, 'hybrid'
2496
+ // for both.
2800
2497
  type PlanType string
2801
2498
 
2802
2499
  const (
@@ -2805,12 +2502,10 @@ const (
2805
2502
  PlanTypeManual PlanType = "manual"
2806
2503
  )
2807
2504
 
2808
- // The type of HDF document being referenced.
2809
- //
2810
2505
  // The type of document referenced in the evidence package. 'bom' covers any
2811
- // Bill-of-Materials/manifest document (SBOM, AI model/dataset, and reserved future kinds) —
2812
- // its specific kind is carried by the referenced document's bomType, not by a per-kind
2813
- // Content_Type value.
2506
+ // Bill-of-Materials/manifest document (SBOM, AI model/dataset, and reserved future kinds) — its
2507
+ // specific kind is carried by the referenced document's bomType, not by a per-kind Content_Type
2508
+ // value.
2814
2509
  type ContentType string
2815
2510
 
2816
2511
  const (