@mitre/hdf-schema 3.3.2 → 3.4.1
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/README.md +10 -0
- package/dist/go/hdf.go +585 -534
- package/dist/helpers.js +5 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +26 -25
- package/dist/schemas/hdf-amendments.schema.json +53 -46
- package/dist/schemas/hdf-baseline.schema.json +58 -51
- package/dist/schemas/hdf-comparison.schema.json +846 -243
- package/dist/schemas/hdf-evidence-package.schema.json +204 -51
- package/dist/schemas/hdf-plan.schema.json +58 -51
- package/dist/schemas/hdf-results.schema.json +785 -214
- package/dist/schemas/hdf-system.schema.json +760 -187
- package/dist/ts/hdf.d.ts +628 -468
- package/dist/ts/hdf.js +95 -139
- package/dist/ts/hdf.ts +637 -468
- package/package.json +2 -2
package/dist/ts/hdf.d.ts
CHANGED
|
@@ -67,9 +67,6 @@ export interface HDFResults {
|
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
69
|
* Information on a baseline that was evaluated, including any findings.
|
|
70
|
-
*
|
|
71
|
-
* Shared metadata fields for baselines. Used in both standalone baseline documents and
|
|
72
|
-
* evaluated baseline results.
|
|
73
70
|
*/
|
|
74
71
|
export interface EvaluatedBaseline {
|
|
75
72
|
/**
|
|
@@ -176,8 +173,7 @@ export interface EvaluatedBaseline {
|
|
|
176
173
|
[property: string]: any;
|
|
177
174
|
}
|
|
178
175
|
/**
|
|
179
|
-
* A dependency for a baseline. Can include relative paths or URLs for where to find the
|
|
180
|
-
* dependency.
|
|
176
|
+
* A dependency for a baseline. Can include relative paths or URLs for where to find the dependency.
|
|
181
177
|
*/
|
|
182
178
|
export interface Dependency {
|
|
183
179
|
/**
|
|
@@ -239,9 +235,9 @@ export interface RequirementGroup {
|
|
|
239
235
|
[property: string]: any;
|
|
240
236
|
}
|
|
241
237
|
/**
|
|
242
|
-
* A typed input parameter that bridges governance requirements and scanner automation.
|
|
243
|
-
*
|
|
244
|
-
*
|
|
238
|
+
* A typed input parameter that bridges governance requirements and scanner automation. Inputs carry
|
|
239
|
+
* expected configuration values with type information, comparison operators, and validation
|
|
240
|
+
* constraints, enabling traceability from policy through to scan results.
|
|
245
241
|
*/
|
|
246
242
|
export interface Input {
|
|
247
243
|
/**
|
|
@@ -281,8 +277,6 @@ export interface Input {
|
|
|
281
277
|
[property: string]: any;
|
|
282
278
|
}
|
|
283
279
|
/**
|
|
284
|
-
* Validation constraints for the input value.
|
|
285
|
-
*
|
|
286
280
|
* Validation constraints for an input value.
|
|
287
281
|
*/
|
|
288
282
|
export interface InputConstraints {
|
|
@@ -305,8 +299,6 @@ export interface InputConstraints {
|
|
|
305
299
|
[property: string]: any;
|
|
306
300
|
}
|
|
307
301
|
/**
|
|
308
|
-
* The comparison operator used when evaluating this input against observed values.
|
|
309
|
-
*
|
|
310
302
|
* Comparison operator for evaluating the input value against observed values. Numeric:
|
|
311
303
|
* eq/ne/lt/le/gt/ge. String: eq/ne/contains/matches. Collection: in/notIn.
|
|
312
304
|
*/
|
|
@@ -323,8 +315,6 @@ export declare enum ComparisonOperator {
|
|
|
323
315
|
NotIn = "notIn"
|
|
324
316
|
}
|
|
325
317
|
/**
|
|
326
|
-
* The data type of this input.
|
|
327
|
-
*
|
|
328
318
|
* The data type of the input value. Aligns with InSpec input types.
|
|
329
319
|
*/
|
|
330
320
|
export declare enum InputType {
|
|
@@ -336,27 +326,8 @@ export declare enum InputType {
|
|
|
336
326
|
String = "String"
|
|
337
327
|
}
|
|
338
328
|
/**
|
|
339
|
-
* Cryptographic integrity information for verifying
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
* Cryptographic integrity information for verifying the HDF file has not been tampered
|
|
343
|
-
* with. If algorithm is provided, checksum must also be provided, and vice versa.
|
|
344
|
-
*
|
|
345
|
-
* Cryptographic integrity information for verifying this file.
|
|
346
|
-
*
|
|
347
|
-
* Cryptographic integrity information for verifying this comparison document.
|
|
348
|
-
*
|
|
349
|
-
* Cryptographic integrity information for verifying this system document has not been
|
|
350
|
-
* tampered with.
|
|
351
|
-
*
|
|
352
|
-
* Cryptographic integrity information for verifying this plan document has not been
|
|
353
|
-
* tampered with.
|
|
354
|
-
*
|
|
355
|
-
* Cryptographic integrity information for verifying this amendments document has not been
|
|
356
|
-
* tampered with.
|
|
357
|
-
*
|
|
358
|
-
* Cryptographic integrity information for verifying this evidence package has not been
|
|
359
|
-
* tampered with.
|
|
329
|
+
* Cryptographic integrity information for verifying the HDF file has not been tampered with. If
|
|
330
|
+
* algorithm is provided, checksum must also be provided, and vice versa.
|
|
360
331
|
*/
|
|
361
332
|
export interface Integrity {
|
|
362
333
|
/**
|
|
@@ -378,40 +349,17 @@ export interface Integrity {
|
|
|
378
349
|
[property: string]: any;
|
|
379
350
|
}
|
|
380
351
|
/**
|
|
381
|
-
*
|
|
382
|
-
*
|
|
383
|
-
* Supported cryptographic hash algorithms for checksums and integrity verification.
|
|
352
|
+
* Supported cryptographic hash algorithms for checksums and integrity verification. blake3 covers
|
|
353
|
+
* container-image and other artifact digests that use it.
|
|
384
354
|
*/
|
|
385
355
|
export declare enum HashAlgorithm {
|
|
356
|
+
Blake3 = "blake3",
|
|
386
357
|
Sha256 = "sha256",
|
|
387
358
|
Sha384 = "sha384",
|
|
388
359
|
Sha512 = "sha512"
|
|
389
360
|
}
|
|
390
361
|
/**
|
|
391
|
-
* SHA-256 checksum of the original baseline definition file (before execution). This is an
|
|
392
|
-
* immutable reference to the baseline as defined, used to detect tampering with baseline
|
|
393
|
-
* requirements or metadata.
|
|
394
|
-
*
|
|
395
362
|
* Cryptographic checksum for baseline integrity verification.
|
|
396
|
-
*
|
|
397
|
-
* SHA-256 checksum of the previous amendment in chronological order. Creates a
|
|
398
|
-
* tamper-evident chain of amendments (similar to blockchain). Null for the first amendment
|
|
399
|
-
* on a requirement.
|
|
400
|
-
*
|
|
401
|
-
* SHA-256 checksum of the raw results before any amendments (statusOverrides or POAMs).
|
|
402
|
-
* Used to detect tampering with test results. Compare with currentChecksum to verify
|
|
403
|
-
* amendment integrity.
|
|
404
|
-
*
|
|
405
|
-
* Optional cryptographic checksum for verifying the integrity of remediation resources
|
|
406
|
-
* fetched from the URI. Recommended for security when referencing external automation
|
|
407
|
-
* scripts.
|
|
408
|
-
*
|
|
409
|
-
* Cryptographic checksum of the source document for integrity verification.
|
|
410
|
-
*
|
|
411
|
-
* Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null
|
|
412
|
-
* for the first amendment.
|
|
413
|
-
*
|
|
414
|
-
* Cryptographic checksum for verifying the referenced document's integrity.
|
|
415
363
|
*/
|
|
416
364
|
export interface Checksum {
|
|
417
365
|
/**
|
|
@@ -426,9 +374,6 @@ export interface Checksum {
|
|
|
426
374
|
}
|
|
427
375
|
/**
|
|
428
376
|
* A requirement that has been evaluated, including any findings.
|
|
429
|
-
*
|
|
430
|
-
* Core requirement fields shared between baseline requirements and evaluated requirements.
|
|
431
|
-
* Contains the fundamental requirement definition without assessment results.
|
|
432
377
|
*/
|
|
433
378
|
export interface EvaluatedRequirement {
|
|
434
379
|
/**
|
|
@@ -577,14 +522,13 @@ export interface EvaluatedRequirement {
|
|
|
577
522
|
}
|
|
578
523
|
/**
|
|
579
524
|
* Represents a package referenced by a vulnerability finding or by an amendment's scope. On
|
|
580
|
-
* Evaluated_Requirement.affectedPackages it says 'this CVE affects these package versions'.
|
|
581
|
-
*
|
|
582
|
-
*
|
|
583
|
-
*
|
|
584
|
-
*
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
* sources without formal identifiers.
|
|
525
|
+
* Evaluated_Requirement.affectedPackages it says 'this CVE affects these package versions'. On
|
|
526
|
+
* Standalone_Override.affectedPackages it says 'this amendment is scoped to these packages' (used
|
|
527
|
+
* by VEX, OSCAL POA&M, FedRAMP component-aware amendments). NOT a system-level component identifier
|
|
528
|
+
* — see `components[]` on hdf-system for those. Validity requires at least one of: (name + version
|
|
529
|
+
* + ecosystem), purl alone, or cpe alone. purl and cpe are self-describing identifiers that encode
|
|
530
|
+
* name/version implicitly, so either may stand on its own; the name+version+ecosystem combination
|
|
531
|
+
* is the explicit form for sources without formal identifiers.
|
|
588
532
|
*/
|
|
589
533
|
export interface AffectedPackage {
|
|
590
534
|
/**
|
|
@@ -671,16 +615,12 @@ export declare enum ControlType {
|
|
|
671
615
|
Technical = "technical"
|
|
672
616
|
}
|
|
673
617
|
/**
|
|
674
|
-
*
|
|
675
|
-
*
|
|
676
|
-
*
|
|
677
|
-
*
|
|
678
|
-
*
|
|
679
|
-
*
|
|
680
|
-
* Environmental, and Supplemental metric groups. Supports all four CVSS major versions
|
|
681
|
-
* (2.0, 3.0, 3.1, 4.0). Vector strings are validated against a permissive umbrella grammar;
|
|
682
|
-
* semantic validation (correct metrics per version, correct values per metric) is performed
|
|
683
|
-
* by the hdf-utilities `validateCvssVector` helper rather than at the schema layer.
|
|
618
|
+
* A CVSS (Common Vulnerability Scoring System) score record for a vulnerability finding. Captures
|
|
619
|
+
* the vendor-supplied Base metric group and optional consumer-supplied Threat, Environmental, and
|
|
620
|
+
* Supplemental metric groups. Supports all four CVSS major versions (2.0, 3.0, 3.1, 4.0). Vector
|
|
621
|
+
* strings are validated against a permissive umbrella grammar; semantic validation (correct metrics
|
|
622
|
+
* per version, correct values per metric) is performed by the hdf-utilities `validateCvssVector`
|
|
623
|
+
* helper rather than at the schema layer.
|
|
684
624
|
*/
|
|
685
625
|
export interface Cvss {
|
|
686
626
|
/**
|
|
@@ -752,15 +692,9 @@ export interface Cvss {
|
|
|
752
692
|
[property: string]: any;
|
|
753
693
|
}
|
|
754
694
|
/**
|
|
755
|
-
* Qualitative severity band corresponding to baseScore. CVSS 2.0 does not natively use
|
|
756
|
-
* 'none' or 'critical' bands; map accordingly when populating.
|
|
757
|
-
*
|
|
758
695
|
* Qualitative CVSS severity band. Aligns with FIRST/NVD bands: none=0.0, low=0.1-3.9,
|
|
759
|
-
* medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum
|
|
760
|
-
*
|
|
761
|
-
*
|
|
762
|
-
* Qualitative severity band corresponding to computedScore. Same band convention as
|
|
763
|
-
* baseSeverity.
|
|
696
|
+
* medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum used on
|
|
697
|
+
* Requirement_Core (which includes 'informational').
|
|
764
698
|
*/
|
|
765
699
|
export declare enum CVSSSeverity {
|
|
766
700
|
Critical = "critical",
|
|
@@ -792,29 +726,19 @@ export interface Description {
|
|
|
792
726
|
[property: string]: any;
|
|
793
727
|
}
|
|
794
728
|
/**
|
|
795
|
-
* The type of
|
|
796
|
-
*
|
|
797
|
-
*
|
|
798
|
-
*
|
|
799
|
-
*
|
|
800
|
-
*
|
|
801
|
-
*
|
|
802
|
-
*
|
|
803
|
-
*
|
|
804
|
-
*
|
|
805
|
-
*
|
|
806
|
-
*
|
|
807
|
-
*
|
|
808
|
-
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
809
|
-
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
810
|
-
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
811
|
-
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
812
|
-
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
813
|
-
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
814
|
-
*
|
|
815
|
-
* The type of override applied to this requirement.
|
|
816
|
-
*
|
|
817
|
-
* The type of amendment.
|
|
729
|
+
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk accepted
|
|
730
|
+
* by Authorizing Official. 'attestation': manually verified by assessor. 'poam': remediation
|
|
731
|
+
* tracked (no status change). 'inherited': control provided by another component or system.
|
|
732
|
+
* 'falsePositive': scanner incorrectly identified a finding — for compliance scans (STIG, CIS), the
|
|
733
|
+
* check actually passes, so status is typically set to 'passed'; for vulnerability scans (CVE,
|
|
734
|
+
* SCA), the flagged vulnerability does not apply to this system, so status is typically set to
|
|
735
|
+
* 'notApplicable'. The disposition field on the requirement distinguishes false positives from
|
|
736
|
+
* genuinely not-applicable findings. 'riskAdjustment': impact score adjusted based on environmental
|
|
737
|
+
* context (FedRAMP Risk Adjustment); does not change pass/fail status, only impact via the impact
|
|
738
|
+
* field. 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
739
|
+
* Operational Requirement); the finding cannot be remediated because the system requires the
|
|
740
|
+
* affected functionality. Remains an open risk. Migration note: 'exception' was removed in v3.1.0 —
|
|
741
|
+
* use 'waiver' with status 'notApplicable' instead.
|
|
818
742
|
*/
|
|
819
743
|
export declare enum OverrideType {
|
|
820
744
|
Attestation = "attestation",
|
|
@@ -826,20 +750,9 @@ export declare enum OverrideType {
|
|
|
826
750
|
Waiver = "waiver"
|
|
827
751
|
}
|
|
828
752
|
/**
|
|
829
|
-
* The
|
|
830
|
-
*
|
|
831
|
-
*
|
|
832
|
-
*
|
|
833
|
-
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
834
|
-
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
835
|
-
* requires manual verification).
|
|
836
|
-
*
|
|
837
|
-
* The status of this test within the requirement. Example: 'failed'.
|
|
838
|
-
*
|
|
839
|
-
* The new status this override sets for the requirement. Optional when only impact is being
|
|
840
|
-
* overridden.
|
|
841
|
-
*
|
|
842
|
-
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
753
|
+
* The status of an individual test result. 'notApplicable' indicates the requirement does not apply
|
|
754
|
+
* to the target. 'notReviewed' indicates the requirement was not assessed (e.g., requires manual
|
|
755
|
+
* verification).
|
|
843
756
|
*/
|
|
844
757
|
export declare enum ResultStatus {
|
|
845
758
|
Error = "error",
|
|
@@ -849,13 +762,9 @@ export declare enum ResultStatus {
|
|
|
849
762
|
Passed = "passed"
|
|
850
763
|
}
|
|
851
764
|
/**
|
|
852
|
-
* FIRST.org
|
|
853
|
-
*
|
|
854
|
-
*
|
|
855
|
-
*
|
|
856
|
-
* FIRST.org Exploit Prediction Scoring System (EPSS) data for a single vulnerability. All
|
|
857
|
-
* three fields are required when an Epss object is present; the date disambiguates which
|
|
858
|
-
* day's score this is, since EPSS recomputes daily.
|
|
765
|
+
* FIRST.org Exploit Prediction Scoring System (EPSS) data for a single vulnerability. All three
|
|
766
|
+
* fields are required when an Epss object is present; the date disambiguates which day's score this
|
|
767
|
+
* is, since EPSS recomputes daily.
|
|
859
768
|
*/
|
|
860
769
|
export interface Epss {
|
|
861
770
|
/**
|
|
@@ -877,8 +786,8 @@ export interface Epss {
|
|
|
877
786
|
[property: string]: any;
|
|
878
787
|
}
|
|
879
788
|
/**
|
|
880
|
-
* Supporting evidence for a finding or override, such as screenshots, code samples, log
|
|
881
|
-
*
|
|
789
|
+
* Supporting evidence for a finding or override, such as screenshots, code samples, log excerpts,
|
|
790
|
+
* or URLs.
|
|
882
791
|
*/
|
|
883
792
|
export interface Evidence {
|
|
884
793
|
/**
|
|
@@ -917,41 +826,8 @@ export interface Evidence {
|
|
|
917
826
|
[property: string]: any;
|
|
918
827
|
}
|
|
919
828
|
/**
|
|
920
|
-
*
|
|
921
|
-
*
|
|
922
|
-
* Represents an identity that performed an action, such as capturing evidence or applying
|
|
923
|
-
* an override.
|
|
924
|
-
*
|
|
925
|
-
* Identity of who created this POA&M. For simple cases, use type 'simple' with just an
|
|
926
|
-
* identifier.
|
|
927
|
-
*
|
|
928
|
-
* Identity of who completed this milestone.
|
|
929
|
-
*
|
|
930
|
-
* The identity that created this signature.
|
|
931
|
-
*
|
|
932
|
-
* Identity of who applied this override. For simple cases, use type 'simple' with just an
|
|
933
|
-
* identifier.
|
|
934
|
-
*
|
|
935
|
-
* Identity of the person or system that approved this override.
|
|
936
|
-
*
|
|
937
|
-
* Team or individual responsible for this component. Enables per-component ownership when
|
|
938
|
-
* different teams manage different parts of a system.
|
|
939
|
-
*
|
|
940
|
-
* The identity of the person or system responsible for executing the test. This could be a
|
|
941
|
-
* human auditor manually completing a checklist, an automated CI/CD system, or a security
|
|
942
|
-
* tool. Optional field to support both automated and manual HDF generation.
|
|
943
|
-
*
|
|
944
|
-
* Team or individual responsible for this system's authorization and compliance. Maps to
|
|
945
|
-
* OSCAL responsible-party with role 'system-owner'.
|
|
946
|
-
*
|
|
947
|
-
* Default identity of who created this amendments document. Individual overrides may
|
|
948
|
-
* specify their own appliedBy.
|
|
949
|
-
*
|
|
950
|
-
* Identity of the authorizing official who approved these amendments.
|
|
951
|
-
*
|
|
952
|
-
* Identity of who applied this amendment.
|
|
953
|
-
*
|
|
954
|
-
* Identity of who prepared this evidence package.
|
|
829
|
+
* Represents an identity that performed an action, such as capturing evidence or applying an
|
|
830
|
+
* override.
|
|
955
831
|
*/
|
|
956
832
|
export interface Identity {
|
|
957
833
|
/**
|
|
@@ -965,18 +841,27 @@ export interface Identity {
|
|
|
965
841
|
identifier: string;
|
|
966
842
|
/**
|
|
967
843
|
* The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
|
|
968
|
-
* 'system' for
|
|
969
|
-
*
|
|
844
|
+
* 'system' for deterministic non-interactive automation (CI jobs, cron, scanners), 'agent'
|
|
845
|
+
* for an AI/LLM agent acting with autonomy — kept distinct from 'system' so auditors can
|
|
846
|
+
* apply AI-specific scrutiny (e.g. 'an LLM proposed this' vs a deterministic job) and
|
|
847
|
+
* satisfy AI-source disclosure under frameworks like the EU AI Act and NIST AI RMF,
|
|
848
|
+
* 'simple' for basic string identifiers without additional classification, or 'other' for
|
|
849
|
+
* custom identity systems.
|
|
970
850
|
*/
|
|
971
851
|
type: IdentityType;
|
|
972
852
|
[property: string]: any;
|
|
973
853
|
}
|
|
974
854
|
/**
|
|
975
855
|
* The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
|
|
976
|
-
* 'system' for
|
|
977
|
-
*
|
|
856
|
+
* 'system' for deterministic non-interactive automation (CI jobs, cron, scanners), 'agent'
|
|
857
|
+
* for an AI/LLM agent acting with autonomy — kept distinct from 'system' so auditors can
|
|
858
|
+
* apply AI-specific scrutiny (e.g. 'an LLM proposed this' vs a deterministic job) and
|
|
859
|
+
* satisfy AI-source disclosure under frameworks like the EU AI Act and NIST AI RMF,
|
|
860
|
+
* 'simple' for basic string identifiers without additional classification, or 'other' for
|
|
861
|
+
* custom identity systems.
|
|
978
862
|
*/
|
|
979
863
|
export declare enum IdentityType {
|
|
864
|
+
Agent = "agent",
|
|
980
865
|
Email = "email",
|
|
981
866
|
Other = "other",
|
|
982
867
|
Simple = "simple",
|
|
@@ -1022,9 +907,9 @@ export interface Kev {
|
|
|
1022
907
|
[property: string]: any;
|
|
1023
908
|
}
|
|
1024
909
|
/**
|
|
1025
|
-
* Plan of Action and Milestones for tracking remediation, mitigation, or risk acceptance.
|
|
1026
|
-
*
|
|
1027
|
-
*
|
|
910
|
+
* Plan of Action and Milestones for tracking remediation, mitigation, or risk acceptance. POAMs do
|
|
911
|
+
* NOT change the effectiveStatus - the requirement remains in its current state while the POA&M
|
|
912
|
+
* tracks remediation efforts.
|
|
1028
913
|
*/
|
|
1029
914
|
export interface Poam {
|
|
1030
915
|
/**
|
|
@@ -1106,21 +991,9 @@ export declare enum MilestoneStatus {
|
|
|
1106
991
|
Pending = "pending"
|
|
1107
992
|
}
|
|
1108
993
|
/**
|
|
1109
|
-
*
|
|
1110
|
-
*
|
|
1111
|
-
*
|
|
1112
|
-
* security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic
|
|
1113
|
-
* signing methods via JWK, PEM, or Base58 key formats.
|
|
1114
|
-
*
|
|
1115
|
-
* Optional digital signature for enhanced trust and non-repudiation. Supports hardware
|
|
1116
|
-
* security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other signing
|
|
1117
|
-
* methods.
|
|
1118
|
-
*
|
|
1119
|
-
* Digital signature for non-repudiation.
|
|
1120
|
-
*
|
|
1121
|
-
* Document-level digital signature covering all amendments.
|
|
1122
|
-
*
|
|
1123
|
-
* Digital signature covering the entire evidence package.
|
|
994
|
+
* A digital signature following W3C Data Integrity Proofs pattern. Supports hardware security
|
|
995
|
+
* tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic signing methods
|
|
996
|
+
* via JWK, PEM, or Base58 key formats.
|
|
1124
997
|
*/
|
|
1125
998
|
export interface Signature {
|
|
1126
999
|
/**
|
|
@@ -1164,10 +1037,8 @@ export interface Signature {
|
|
|
1164
1037
|
[property: string]: any;
|
|
1165
1038
|
}
|
|
1166
1039
|
/**
|
|
1167
|
-
*
|
|
1168
|
-
*
|
|
1169
|
-
* Verification method containing the public key needed to verify a digital signature.
|
|
1170
|
-
* Supports multiple key formats including JWK (for RSA, EC), PEM, and Base58.
|
|
1040
|
+
* Verification method containing the public key needed to verify a digital signature. Supports
|
|
1041
|
+
* multiple key formats including JWK (for RSA, EC), PEM, and Base58.
|
|
1171
1042
|
*/
|
|
1172
1043
|
export interface VerificationMethod {
|
|
1173
1044
|
/**
|
|
@@ -1209,12 +1080,6 @@ export declare enum POAMType {
|
|
|
1209
1080
|
}
|
|
1210
1081
|
/**
|
|
1211
1082
|
* A reference to an external document.
|
|
1212
|
-
*
|
|
1213
|
-
* A reference using the 'ref' field.
|
|
1214
|
-
*
|
|
1215
|
-
* A URL pointing at the reference.
|
|
1216
|
-
*
|
|
1217
|
-
* A URI pointing at the reference.
|
|
1218
1083
|
*/
|
|
1219
1084
|
export interface Reference {
|
|
1220
1085
|
ref?: {
|
|
@@ -1269,9 +1134,6 @@ export interface RequirementResult {
|
|
|
1269
1134
|
[property: string]: any;
|
|
1270
1135
|
}
|
|
1271
1136
|
/**
|
|
1272
|
-
* Explicit severity rating. Typically derived from impact score but provided explicitly for
|
|
1273
|
-
* clarity.
|
|
1274
|
-
*
|
|
1275
1137
|
* Severity rating for a requirement. Typically derived from the numeric impact score.
|
|
1276
1138
|
*/
|
|
1277
1139
|
export declare enum Severity {
|
|
@@ -1282,8 +1144,6 @@ export declare enum Severity {
|
|
|
1282
1144
|
Medium = "medium"
|
|
1283
1145
|
}
|
|
1284
1146
|
/**
|
|
1285
|
-
* The explicit location of the requirement within the source code.
|
|
1286
|
-
*
|
|
1287
1147
|
* The explicit location of a requirement within source code.
|
|
1288
1148
|
*/
|
|
1289
1149
|
export interface SourceLocation {
|
|
@@ -1298,9 +1158,9 @@ export interface SourceLocation {
|
|
|
1298
1158
|
[property: string]: any;
|
|
1299
1159
|
}
|
|
1300
1160
|
/**
|
|
1301
|
-
* An intentional change to a requirement's compliance status and/or impact score. At least
|
|
1302
|
-
*
|
|
1303
|
-
*
|
|
1161
|
+
* An intentional change to a requirement's compliance status and/or impact score. At least one of
|
|
1162
|
+
* status or impact must be set. Overrides change the effectiveStatus or impact of the requirement.
|
|
1163
|
+
* All overrides must have an expiration date to enforce periodic review.
|
|
1304
1164
|
*/
|
|
1305
1165
|
export interface StatusOverride {
|
|
1306
1166
|
/**
|
|
@@ -1368,11 +1228,8 @@ export interface StatusOverride {
|
|
|
1368
1228
|
[property: string]: any;
|
|
1369
1229
|
}
|
|
1370
1230
|
/**
|
|
1371
|
-
*
|
|
1372
|
-
*
|
|
1373
|
-
*
|
|
1374
|
-
* An override to the requirement's impact score. The prior impact is the original result
|
|
1375
|
-
* value or the preceding override in the chain.
|
|
1231
|
+
* An override to the requirement's impact score. The prior impact is the original result value or
|
|
1232
|
+
* the preceding override in the chain.
|
|
1376
1233
|
*/
|
|
1377
1234
|
export interface ImpactOverride {
|
|
1378
1235
|
/**
|
|
@@ -1382,28 +1239,21 @@ export interface ImpactOverride {
|
|
|
1382
1239
|
[property: string]: any;
|
|
1383
1240
|
}
|
|
1384
1241
|
/**
|
|
1385
|
-
* Structured controlled-vocabulary
|
|
1386
|
-
*
|
|
1387
|
-
*
|
|
1388
|
-
*
|
|
1389
|
-
*
|
|
1390
|
-
*
|
|
1391
|
-
*
|
|
1392
|
-
*
|
|
1393
|
-
*
|
|
1394
|
-
*
|
|
1395
|
-
*
|
|
1396
|
-
*
|
|
1397
|
-
*
|
|
1398
|
-
*
|
|
1399
|
-
*
|
|
1400
|
-
* requires_dependency / requires_environment / protected_by_compiler / protected_at_runtime
|
|
1401
|
-
* / protected_at_perimeter) are CycloneDX-specific and describe why the vulnerable code
|
|
1402
|
-
* path is unreachable in the deployed configuration. The enum is extended additively across
|
|
1403
|
-
* schema versions as other ecosystems' controlled vocabularies are integrated; documents
|
|
1404
|
-
* using values added in a newer schema version will fail validation against an older
|
|
1405
|
-
* schema. Consumers SHOULD validate against the schema version declared by the document
|
|
1406
|
-
* ($schema) rather than assume a fixed vocabulary.
|
|
1242
|
+
* Structured controlled-vocabulary reason for an override, complementing the free-text 'reason'
|
|
1243
|
+
* field. 'reason' carries the human-readable rationale an auditor reads; 'justification' carries
|
|
1244
|
+
* the machine-readable category enabling filtering, aggregation, and lossless round-trip with
|
|
1245
|
+
* structured ecosystems (VEX, OSCAL, FedRAMP DR). Both fields may be present simultaneously and are
|
|
1246
|
+
* NOT redundant: 'reason' explains the specific circumstance; 'justification' classifies it.
|
|
1247
|
+
* Authors SHOULD populate both when a controlled-vocabulary value applies — the enum value alone is
|
|
1248
|
+
* not self-explanatory to an auditor. The vocabulary is drawn from the VEX ecosystem: the first
|
|
1249
|
+
* five values are common across OpenVEX, CSAF VEX, and CycloneDX VEX; the remaining six
|
|
1250
|
+
* (requires_configuration / requires_dependency / requires_environment / protected_by_compiler /
|
|
1251
|
+
* protected_at_runtime / protected_at_perimeter) are CycloneDX-specific and describe why the
|
|
1252
|
+
* vulnerable code path is unreachable in the deployed configuration. The enum is extended
|
|
1253
|
+
* additively across schema versions as other ecosystems' controlled vocabularies are integrated;
|
|
1254
|
+
* documents using values added in a newer schema version will fail validation against an older
|
|
1255
|
+
* schema. Consumers SHOULD validate against the schema version declared by the document ($schema)
|
|
1256
|
+
* rather than assume a fixed vocabulary.
|
|
1407
1257
|
*/
|
|
1408
1258
|
export declare enum Justification {
|
|
1409
1259
|
ComponentNotPresent = "component_not_present",
|
|
@@ -1419,19 +1269,12 @@ export declare enum Justification {
|
|
|
1419
1269
|
VulnerableCodeNotPresent = "vulnerable_code_not_present"
|
|
1420
1270
|
}
|
|
1421
1271
|
/**
|
|
1422
|
-
* How
|
|
1423
|
-
*
|
|
1424
|
-
*
|
|
1425
|
-
*
|
|
1426
|
-
*
|
|
1427
|
-
*
|
|
1428
|
-
*
|
|
1429
|
-
* How a requirement is intended to be verified. Disambiguates the two cases that null
|
|
1430
|
-
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
1431
|
-
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
1432
|
-
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
1433
|
-
* runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
|
|
1434
|
-
* disambiguate from the unrelated Verification_Method DID-context struct.
|
|
1272
|
+
* How a requirement is intended to be verified. Disambiguates the two cases that null 'code'
|
|
1273
|
+
* overloads: 'manual-by-design' (the requirement is statement-form and not amenable to automation,
|
|
1274
|
+
* e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could exist but does not yet,
|
|
1275
|
+
* e.g. a STIG rule lacking a fix). 'automated' = a check exists and runs without operator action;
|
|
1276
|
+
* 'hybrid' = part automated, part manual. Named '_Enum' to disambiguate from the unrelated
|
|
1277
|
+
* Verification_Method DID-context struct.
|
|
1435
1278
|
*/
|
|
1436
1279
|
export declare enum VerificationMethodEnum {
|
|
1437
1280
|
Automated = "automated",
|
|
@@ -1462,39 +1305,21 @@ export interface SupportedPlatform {
|
|
|
1462
1305
|
[property: string]: any;
|
|
1463
1306
|
}
|
|
1464
1307
|
/**
|
|
1465
|
-
* A system component. Uses discriminated union pattern with 'type' field as discriminator.
|
|
1466
|
-
*
|
|
1467
|
-
*
|
|
1468
|
-
* A physical or virtual server, workstation, or network device.
|
|
1469
|
-
*
|
|
1470
|
-
* Base properties shared by all component types. Extends the Target concept with stable
|
|
1471
|
-
* identity, external references, and SBOM embedding.
|
|
1472
|
-
*
|
|
1473
|
-
* A static container image (not running).
|
|
1474
|
-
*
|
|
1475
|
-
* A running container instance.
|
|
1476
|
-
*
|
|
1477
|
-
* A container orchestration platform (Kubernetes, OpenShift, ECS, etc.).
|
|
1478
|
-
*
|
|
1479
|
-
* A cloud provider account (AWS account, Azure subscription, GCP project).
|
|
1480
|
-
*
|
|
1481
|
-
* A specific cloud resource (EC2 instance, S3 bucket, Azure VM, etc.).
|
|
1482
|
-
*
|
|
1483
|
-
* A code repository (for SAST tools).
|
|
1484
|
-
*
|
|
1485
|
-
* A running application or API (for DAST tools).
|
|
1486
|
-
*
|
|
1487
|
-
* A software artifact or dependency (for SCA tools).
|
|
1488
|
-
*
|
|
1489
|
-
* A network segment or network device.
|
|
1490
|
-
*
|
|
1491
|
-
* A database instance.
|
|
1308
|
+
* A system component. Uses discriminated union pattern with 'type' field as discriminator. Superset
|
|
1309
|
+
* of Target with identity, external IDs, and SBOM support.
|
|
1492
1310
|
*/
|
|
1493
1311
|
export interface Component {
|
|
1494
1312
|
/**
|
|
1495
1313
|
* Names of baselines that apply to this component.
|
|
1496
1314
|
*/
|
|
1497
1315
|
baselineRefs?: string[];
|
|
1316
|
+
/**
|
|
1317
|
+
* Component-scoped Bills of Materials (SBOM, ai-model, dataset, or any reserved bomType),
|
|
1318
|
+
* each carried by passthrough (ref/document) or normalized. Replaces the former
|
|
1319
|
+
* sbom/sbomRef/sbomFormat trio; a component may carry several BOMs (e.g. an SBOM plus an
|
|
1320
|
+
* ai-model BOM). See primitives/bom.schema.json.
|
|
1321
|
+
*/
|
|
1322
|
+
boms?: BillOfMaterials[];
|
|
1498
1323
|
/**
|
|
1499
1324
|
* Stable UUID (RFC 4122) for this component. Required in hdf-system documents, optional in
|
|
1500
1325
|
* hdf-results. Enables cross-document correlation, diffing, and data flow references.
|
|
@@ -1516,6 +1341,15 @@ export interface Component {
|
|
|
1516
1341
|
* System-specific overrides for baseline input values.
|
|
1517
1342
|
*/
|
|
1518
1343
|
inputOverrides?: InputOverride[];
|
|
1344
|
+
/**
|
|
1345
|
+
* Cryptographic integrity of this component's underlying artifact — model weights or
|
|
1346
|
+
* shards, dataset archive, container image, or package bytes. An array supports
|
|
1347
|
+
* multi-file/sharded artifacts. This is the single, generic home for artifact/subject
|
|
1348
|
+
* integrity across all component types (it replaced the former per-type Container_Image
|
|
1349
|
+
* digest and Artifact checksum fields). Distinct from BOM-document integrity (Bom.hashes[])
|
|
1350
|
+
* and from the document tamper-evidence Integrity type.
|
|
1351
|
+
*/
|
|
1352
|
+
integrity?: Checksum[];
|
|
1519
1353
|
/**
|
|
1520
1354
|
* Optional key-value labels for flexible grouping. Well-known keys: system, component,
|
|
1521
1355
|
* environment, region, team. Values must be strings.
|
|
@@ -1532,20 +1366,6 @@ export interface Component {
|
|
|
1532
1366
|
* different teams manage different parts of a system.
|
|
1533
1367
|
*/
|
|
1534
1368
|
owner?: Identity;
|
|
1535
|
-
/**
|
|
1536
|
-
* Embedded CycloneDX or SPDX SBOM document representing this component's software
|
|
1537
|
-
* inventory. The sbomFormat field determines which format constraints apply.
|
|
1538
|
-
*/
|
|
1539
|
-
sbom?: any;
|
|
1540
|
-
/**
|
|
1541
|
-
* Format of the SBOM (embedded or referenced). Required when sbom or sbomRef is present.
|
|
1542
|
-
*/
|
|
1543
|
-
sbomFormat?: SBOMFormat;
|
|
1544
|
-
/**
|
|
1545
|
-
* URI reference to an external CycloneDX or SPDX SBOM document for this component. May be a
|
|
1546
|
-
* relative path, absolute URI, or fragment identifier.
|
|
1547
|
-
*/
|
|
1548
|
-
sbomRef?: string;
|
|
1549
1369
|
/**
|
|
1550
1370
|
* Label selector to match targets belonging to this component during migration. Targets
|
|
1551
1371
|
* with matching labels are automatically included.
|
|
@@ -1554,13 +1374,31 @@ export interface Component {
|
|
|
1554
1374
|
[key: string]: string;
|
|
1555
1375
|
};
|
|
1556
1376
|
/**
|
|
1557
|
-
* Component type discriminator. Same values as Target types
|
|
1377
|
+
* Component type discriminator. Same values as Target types, plus aiModel and dataset (thin
|
|
1378
|
+
* AI subject components whose detail lives in an attached ai-model / dataset BOM).
|
|
1558
1379
|
*/
|
|
1559
1380
|
type: TargetType;
|
|
1560
1381
|
/**
|
|
1561
|
-
*
|
|
1382
|
+
* Directory domain the host is a member of — Active Directory / NetBIOS / LDAP domain (ECS
|
|
1383
|
+
* host.domain semantics), NOT necessarily the DNS suffix of the FQDN. A standalone or
|
|
1384
|
+
* workgroup host has a hostname but no domain. Not derivable from the FQDN; populate only
|
|
1385
|
+
* from a source that carries directory membership.
|
|
1386
|
+
*/
|
|
1387
|
+
domain?: string;
|
|
1388
|
+
/**
|
|
1389
|
+
* Fully qualified domain name (e.g. 'web01.prod.example.com'). Distinct from 'hostname'
|
|
1390
|
+
* (short) and 'domain' (directory domain). ECS recommends storing this lowercase; the
|
|
1391
|
+
* schema does not enforce case so source fidelity is preserved on round-trip.
|
|
1562
1392
|
*/
|
|
1563
1393
|
fqdn?: string;
|
|
1394
|
+
/**
|
|
1395
|
+
* Short, OS-reported host name (the unqualified machine name, e.g. 'web01'). Kept distinct
|
|
1396
|
+
* from 'fqdn' because an FQDN is not reliably decomposable into hostname + domain
|
|
1397
|
+
* (standalone/workgroup hosts have no domain; a directory domain is not the FQDN's DNS
|
|
1398
|
+
* suffix). Aligns with ECS host.hostname and DISA STIG CKL HOST_NAME. Store the short name
|
|
1399
|
+
* the source reports; do not derive it from the FQDN.
|
|
1400
|
+
*/
|
|
1401
|
+
hostname?: string;
|
|
1564
1402
|
/**
|
|
1565
1403
|
* IP address of the host.
|
|
1566
1404
|
*/
|
|
@@ -1577,10 +1415,6 @@ export interface Component {
|
|
|
1577
1415
|
* Operating system version.
|
|
1578
1416
|
*/
|
|
1579
1417
|
osVersion?: string;
|
|
1580
|
-
/**
|
|
1581
|
-
* Image digest for immutable reference.
|
|
1582
|
-
*/
|
|
1583
|
-
digest?: string;
|
|
1584
1418
|
/**
|
|
1585
1419
|
* Container image ID.
|
|
1586
1420
|
*/
|
|
@@ -1629,6 +1463,11 @@ export interface Component {
|
|
|
1629
1463
|
* Package version.
|
|
1630
1464
|
*
|
|
1631
1465
|
* Database version.
|
|
1466
|
+
*
|
|
1467
|
+
* Model version, revision, or checkpoint tag.
|
|
1468
|
+
*
|
|
1469
|
+
* Dataset version, release identifier, or — for highly dynamic datasets — a timestamped
|
|
1470
|
+
* release marker.
|
|
1632
1471
|
*/
|
|
1633
1472
|
version?: string;
|
|
1634
1473
|
/**
|
|
@@ -1675,10 +1514,6 @@ export interface Component {
|
|
|
1675
1514
|
* Environment. Example: 'production', 'staging', 'development'.
|
|
1676
1515
|
*/
|
|
1677
1516
|
environment?: string;
|
|
1678
|
-
/**
|
|
1679
|
-
* Package checksum for verification.
|
|
1680
|
-
*/
|
|
1681
|
-
checksum?: string;
|
|
1682
1517
|
/**
|
|
1683
1518
|
* Package manager. Example: 'npm', 'maven', 'pip', 'nuget'.
|
|
1684
1519
|
*/
|
|
@@ -1707,11 +1542,311 @@ export interface Component {
|
|
|
1707
1542
|
* Database port.
|
|
1708
1543
|
*/
|
|
1709
1544
|
port?: number;
|
|
1545
|
+
/**
|
|
1546
|
+
* Provider/registry identifier for the model. Examples: a Hugging Face repo id
|
|
1547
|
+
* ('meta-llama/Llama-2-7b-hf') or a model purl. Correlates the component to its ai-model
|
|
1548
|
+
* BOM(s) and to lineage references from other models.
|
|
1549
|
+
*/
|
|
1550
|
+
modelId?: string;
|
|
1551
|
+
/**
|
|
1552
|
+
* Provider/registry identifier for the dataset. Examples: a Hugging Face dataset repo id
|
|
1553
|
+
* ('HuggingFaceH4/ultrachat_200k'), a DOI, or a dataset purl. Correlates the component to
|
|
1554
|
+
* its dataset BOM(s) and to datasetRefs from ai-model components.
|
|
1555
|
+
*/
|
|
1556
|
+
datasetId?: string;
|
|
1557
|
+
[property: string]: any;
|
|
1558
|
+
}
|
|
1559
|
+
export interface BillOfMaterials {
|
|
1560
|
+
/**
|
|
1561
|
+
* The manifest kind. Determines which normalized type-extension (model/dataset/packages)
|
|
1562
|
+
* may appear.
|
|
1563
|
+
*/
|
|
1564
|
+
bomType: string;
|
|
1565
|
+
/**
|
|
1566
|
+
* Normalized dataset extension. Permitted only when bomType is dataset.
|
|
1567
|
+
*/
|
|
1568
|
+
dataset?: DatasetBOMExtension;
|
|
1569
|
+
/**
|
|
1570
|
+
* Passthrough by embedding: the native manifest carried opaquely (e.g. a raw CycloneDX or
|
|
1571
|
+
* SPDX object). HDF does not constrain its internal shape — full manifest validation is a
|
|
1572
|
+
* tool-level concern.
|
|
1573
|
+
*/
|
|
1574
|
+
document?: {
|
|
1575
|
+
[key: string]: any;
|
|
1576
|
+
};
|
|
1577
|
+
/**
|
|
1578
|
+
* Source manifest format the BOM was produced from or references. Examples: cyclonedx,
|
|
1579
|
+
* cyclonedx-ml, spdx, spdx-ai, huggingface, croissant. Free-form so new formats need no
|
|
1580
|
+
* schema change; the converter that emits the BOM owns the value.
|
|
1581
|
+
*/
|
|
1582
|
+
format: string;
|
|
1583
|
+
/**
|
|
1584
|
+
* Integrity of the carried BOM *document* itself (the referenced/embedded manifest file),
|
|
1585
|
+
* NOT the integrity of the BOM's subject artifact. Subject/artifact integrity (model
|
|
1586
|
+
* weights, dataset archive) is a component-level concern, not carried here. Subject
|
|
1587
|
+
* identity is inherited from the host component/system; per-node identity lives in the
|
|
1588
|
+
* type-extension.
|
|
1589
|
+
*/
|
|
1590
|
+
hashes?: Checksum[];
|
|
1591
|
+
/**
|
|
1592
|
+
* Optional license of the BOM document as a whole (SPDX license expression). Nullable and
|
|
1593
|
+
* often meaningless (CBOM algorithms, many HBOM parts have no license); per-node licenses
|
|
1594
|
+
* live in the type-extension, not here.
|
|
1595
|
+
*/
|
|
1596
|
+
license?: null | string;
|
|
1597
|
+
/**
|
|
1598
|
+
* Normalized ai-model extension. Permitted only when bomType is ai-model.
|
|
1599
|
+
*/
|
|
1600
|
+
model?: AIModelBOMExtension;
|
|
1601
|
+
/**
|
|
1602
|
+
* Normalized sbom extension: the flattened software package inventory. Permitted only when
|
|
1603
|
+
* bomType is sbom.
|
|
1604
|
+
*/
|
|
1605
|
+
packages?: SBOMPackage[];
|
|
1606
|
+
/**
|
|
1607
|
+
* Passthrough by reference: URI (relative path, absolute URI, or fragment) to the native
|
|
1608
|
+
* manifest document. Present for externally-hosted BOMs.
|
|
1609
|
+
*/
|
|
1610
|
+
ref?: string;
|
|
1611
|
+
/**
|
|
1612
|
+
* Optional stable identifier for this BOM document (e.g. CycloneDX serialNumber, SPDX
|
|
1613
|
+
* documentNamespace). Correlates the same BOM across evidence packages.
|
|
1614
|
+
*/
|
|
1615
|
+
uniqueId?: string;
|
|
1616
|
+
}
|
|
1617
|
+
/**
|
|
1618
|
+
* Normalized dataset fields (SPDX 3.0 Dataset profile / MLCommons Croissant aligned). All optional;
|
|
1619
|
+
* open for partial-fidelity passthrough of unmapped native fields. Symmetric with
|
|
1620
|
+
* AI_Model_Extension: carries the dataset's own lineage (baseDatasetRefs/derivation) just as the
|
|
1621
|
+
* model extension carries baseModelRef/adaptationType.
|
|
1622
|
+
*/
|
|
1623
|
+
export interface DatasetBOMExtension {
|
|
1624
|
+
/**
|
|
1625
|
+
* References to the source dataset(s) this one was derived from — a dataset componentId, or
|
|
1626
|
+
* a dataset BOM uniqueId/URI when no component exists. The lineage edge parallel to
|
|
1627
|
+
* ai-model's baseModelRef; the base dataset may carry its own dataset BOM.
|
|
1628
|
+
*/
|
|
1629
|
+
baseDatasetRefs?: string[];
|
|
1630
|
+
/**
|
|
1631
|
+
* Sensitivity/classification of the data. Examples: public, internal, confidential, pii,
|
|
1632
|
+
* phi.
|
|
1633
|
+
*/
|
|
1634
|
+
dataClassification?: string;
|
|
1635
|
+
/**
|
|
1636
|
+
* Physical format of the dataset. Examples: parquet, csv, jsonl, tfrecord, webdataset.
|
|
1637
|
+
*/
|
|
1638
|
+
datasetFormat?: string;
|
|
1639
|
+
/**
|
|
1640
|
+
* Relationship of this dataset to baseDatasetRefs, parallel to the model extension's
|
|
1641
|
+
* adaptationType. Minimal + extensible: filtered (subset by rule), augmented
|
|
1642
|
+
* (added/synthesized records), merged (union of sources), sampled (statistical draw).
|
|
1643
|
+
*/
|
|
1644
|
+
derivation?: DatasetDerivationType;
|
|
1645
|
+
/**
|
|
1646
|
+
* Free-text statement of the dataset's intended use (CISA/G7 minimum element).
|
|
1647
|
+
*/
|
|
1648
|
+
intendedUse?: string;
|
|
1649
|
+
/**
|
|
1650
|
+
* Content modality/kind of the data (CISA/G7 'Dataset content: modality'). Examples: text,
|
|
1651
|
+
* image, tabular, timeseries, audio. DISTINCT from datasetFormat, which is the physical
|
|
1652
|
+
* encoding (parquet/csv). Resolves SPDX 3.0 dataset_datasetType, which is content-kind, not
|
|
1653
|
+
* physical format. String or array of strings.
|
|
1654
|
+
*/
|
|
1655
|
+
modality?: string[] | string;
|
|
1656
|
+
/**
|
|
1657
|
+
* Free-text description of the dataset's origin and collection process (CISA/G7 'Dataset
|
|
1658
|
+
* provenance'; SPDX 3.0 dataset_dataCollectionProcess).
|
|
1659
|
+
*/
|
|
1660
|
+
provenance?: string;
|
|
1661
|
+
/**
|
|
1662
|
+
* Number of records/examples in the dataset.
|
|
1663
|
+
*/
|
|
1664
|
+
recordCount?: number;
|
|
1665
|
+
/**
|
|
1666
|
+
* Free-text summary of the dataset's statistical properties (CISA/G7 minimum element;
|
|
1667
|
+
* open-ended by design). Intentionally free-text and will remain so permanently:
|
|
1668
|
+
* recordCount is the one structured statistic, and restructuring this into an object later
|
|
1669
|
+
* would break existing consumers, so it stays a string (additive-only).
|
|
1670
|
+
*/
|
|
1671
|
+
statisticalProperties?: string;
|
|
1672
|
+
[property: string]: any;
|
|
1673
|
+
}
|
|
1674
|
+
/**
|
|
1675
|
+
* Relationship of this dataset to baseDatasetRefs, parallel to the model extension's
|
|
1676
|
+
* adaptationType. Minimal + extensible: filtered (subset by rule), augmented
|
|
1677
|
+
* (added/synthesized records), merged (union of sources), sampled (statistical draw).
|
|
1678
|
+
*/
|
|
1679
|
+
export declare enum DatasetDerivationType {
|
|
1680
|
+
Augmented = "augmented",
|
|
1681
|
+
Filtered = "filtered",
|
|
1682
|
+
Merged = "merged",
|
|
1683
|
+
Sampled = "sampled"
|
|
1684
|
+
}
|
|
1685
|
+
/**
|
|
1686
|
+
* Normalized AI-model fields, aligned to the CISA/G7 'SBOM for AI' minimum elements. All fields
|
|
1687
|
+
* optional (standards-correct; only the EU AI Act makes a subset binding for high-risk/GPAI). Left
|
|
1688
|
+
* open (additionalProperties: true) so a converter can carry unmapped native fields opaquely
|
|
1689
|
+
* (partial-fidelity pattern). Subject name/version are inherited from the host aiModel component,
|
|
1690
|
+
* not repeated here.
|
|
1691
|
+
*/
|
|
1692
|
+
export interface AIModelBOMExtension {
|
|
1693
|
+
/**
|
|
1694
|
+
* Lineage relationship to baseModelRef, adopting Hugging Face's base_model_relation
|
|
1695
|
+
* vocabulary (the only typed lineage enum in the ecosystem).
|
|
1696
|
+
*/
|
|
1697
|
+
adaptationType?: ModelAdaptationType;
|
|
1698
|
+
/**
|
|
1699
|
+
* Reference to the base model this one was adapted from (e.g. a Hugging Face repo id or
|
|
1700
|
+
* purl). Correlates the lineage edge; the base model itself may carry its own ai-model BOM.
|
|
1701
|
+
*/
|
|
1702
|
+
baseModelRef?: string;
|
|
1703
|
+
/**
|
|
1704
|
+
* References to the training/evaluation datasets this model was produced from — preferably
|
|
1705
|
+
* a dataset component's componentId (correlating to a first-class dataset subject rather
|
|
1706
|
+
* than duplicating dataset detail, per ADR §10), or a dataset BOM uniqueId/URI when no
|
|
1707
|
+
* component exists.
|
|
1708
|
+
*/
|
|
1709
|
+
datasetRefs?: string[];
|
|
1710
|
+
/**
|
|
1711
|
+
* Training hyper-parameters as name/value pairs (epochs, learning-rate, batch-size). This
|
|
1712
|
+
* is the set of training knobs, NOT the model's trainable parameterCount — the two are
|
|
1713
|
+
* routinely conflated. CISA/G7 'Model properties: hyper-parameters'; SPDX 3.0
|
|
1714
|
+
* ai_hyperparameter.
|
|
1715
|
+
*/
|
|
1716
|
+
hyperparameters?: Hyperparameter[];
|
|
1717
|
+
/**
|
|
1718
|
+
* Model input/output properties (CISA/G7 minimum element): I/O data types, modality,
|
|
1719
|
+
* context/sequence length, and tokenizer. Sourced from CycloneDX
|
|
1720
|
+
* modelParameters.inputs[].format / outputs[].format. All sub-fields optional.
|
|
1721
|
+
*/
|
|
1722
|
+
inputOutput?: InputOutput;
|
|
1723
|
+
/**
|
|
1724
|
+
* Free-text statement of intended use and out-of-scope uses (CISA/G7 minimum element).
|
|
1725
|
+
*/
|
|
1726
|
+
intendedUse?: string;
|
|
1727
|
+
/**
|
|
1728
|
+
* Model's learning/training paradigm. Free-text because the value set varies across
|
|
1729
|
+
* standards. Examples: supervised, self-supervised, semi-supervised, reinforcement.
|
|
1730
|
+
* Cross-standard intersection: SPDX 3.0 ai_typeOfModel ∩ CycloneDX
|
|
1731
|
+
* modelParameters.approach.type ∩ CISA/G7 learning type.
|
|
1732
|
+
*/
|
|
1733
|
+
learningApproach?: string;
|
|
1734
|
+
/**
|
|
1735
|
+
* Model architecture family. Examples: transformer, cnn, diffusion, mixture-of-experts.
|
|
1736
|
+
*/
|
|
1737
|
+
modelArchitecture?: string;
|
|
1738
|
+
/**
|
|
1739
|
+
* Total trainable parameter count. No native CycloneDX/SPDX field exists; first-class here
|
|
1740
|
+
* because the EU AI Act keys GPAI obligations off model scale.
|
|
1741
|
+
*/
|
|
1742
|
+
parameterCount?: number;
|
|
1743
|
+
/**
|
|
1744
|
+
* Reported evaluation metrics as name/value pairs. Values are free-text because metrics are
|
|
1745
|
+
* heterogeneous (accuracy, f1, BLEU, latency). The item stays open (additionalProperties:
|
|
1746
|
+
* true) to carry native CycloneDX slice/confidenceInterval detail opaquely. Cross-standard
|
|
1747
|
+
* intersection: SPDX 3.0 ai_metric ∩ CycloneDX quantitativeAnalysis.performanceMetrics ∩
|
|
1748
|
+
* CISA/G7 KPI cluster.
|
|
1749
|
+
*/
|
|
1750
|
+
performanceMetrics?: PerformanceMetric[];
|
|
1751
|
+
/**
|
|
1752
|
+
* On-disk weight serialization format. Security-critical yet under-modeled by BOM specs:
|
|
1753
|
+
* pickle/pytorch permits arbitrary code execution on load; safetensors does not. Examples:
|
|
1754
|
+
* safetensors, pytorch, gguf, onnx, tensorflow.
|
|
1755
|
+
*/
|
|
1756
|
+
serializationFormat?: string;
|
|
1757
|
+
/**
|
|
1758
|
+
* The ML task the model performs. Free-text. Examples: text-classification,
|
|
1759
|
+
* sentiment-analysis, object-detection, translation. Sourced from CycloneDX
|
|
1760
|
+
* modelParameters.task (SPDX 3.0 ai_domain is domain-level/adjacent, not the task); CISA/G7
|
|
1761
|
+
* intended-application.
|
|
1762
|
+
*/
|
|
1763
|
+
task?: string;
|
|
1764
|
+
[property: string]: any;
|
|
1765
|
+
}
|
|
1766
|
+
/**
|
|
1767
|
+
* Lineage relationship to baseModelRef, adopting Hugging Face's base_model_relation
|
|
1768
|
+
* vocabulary (the only typed lineage enum in the ecosystem).
|
|
1769
|
+
*/
|
|
1770
|
+
export declare enum ModelAdaptationType {
|
|
1771
|
+
Adapter = "adapter",
|
|
1772
|
+
Finetune = "finetune",
|
|
1773
|
+
Merge = "merge",
|
|
1774
|
+
Quantized = "quantized"
|
|
1775
|
+
}
|
|
1776
|
+
export interface Hyperparameter {
|
|
1777
|
+
/**
|
|
1778
|
+
* Hyper-parameter name. Examples: epochs, learning-rate, batch-size.
|
|
1779
|
+
*/
|
|
1780
|
+
name?: string;
|
|
1781
|
+
/**
|
|
1782
|
+
* Hyper-parameter value (free-text).
|
|
1783
|
+
*/
|
|
1784
|
+
value?: string;
|
|
1785
|
+
[property: string]: any;
|
|
1786
|
+
}
|
|
1787
|
+
/**
|
|
1788
|
+
* Model input/output properties (CISA/G7 minimum element): I/O data types, modality,
|
|
1789
|
+
* context/sequence length, and tokenizer. Sourced from CycloneDX
|
|
1790
|
+
* modelParameters.inputs[].format / outputs[].format. All sub-fields optional.
|
|
1791
|
+
*/
|
|
1792
|
+
export interface InputOutput {
|
|
1793
|
+
/**
|
|
1794
|
+
* Maximum context/sequence length the model accepts, in tokens.
|
|
1795
|
+
*/
|
|
1796
|
+
contextLength?: number;
|
|
1797
|
+
/**
|
|
1798
|
+
* Input/output data types. Examples: string, byte[], float32, image.
|
|
1799
|
+
*/
|
|
1800
|
+
dataTypes?: string[];
|
|
1801
|
+
/**
|
|
1802
|
+
* Input/output modalities. String or array of strings. Examples: text, image, audio.
|
|
1803
|
+
* Symmetric with Dataset_Extension.modality.
|
|
1804
|
+
*/
|
|
1805
|
+
modality?: string[] | string;
|
|
1806
|
+
/**
|
|
1807
|
+
* Tokenizer used for the model's input encoding. Examples: BPE, SentencePiece, tiktoken.
|
|
1808
|
+
*/
|
|
1809
|
+
tokenizer?: string;
|
|
1810
|
+
[property: string]: any;
|
|
1811
|
+
}
|
|
1812
|
+
export interface PerformanceMetric {
|
|
1813
|
+
/**
|
|
1814
|
+
* Metric name. Examples: accuracy, f1, BLEU, latency.
|
|
1815
|
+
*/
|
|
1816
|
+
name?: string;
|
|
1817
|
+
/**
|
|
1818
|
+
* Reported metric value, free-text because metrics are heterogeneous (percentages, scores,
|
|
1819
|
+
* milliseconds).
|
|
1820
|
+
*/
|
|
1821
|
+
value?: string;
|
|
1822
|
+
[property: string]: any;
|
|
1823
|
+
}
|
|
1824
|
+
/**
|
|
1825
|
+
* A single normalized software package entry within an sbom BOM. Minimal identity + version for
|
|
1826
|
+
* querying/diffing; the full native record remains available via passthrough (document/ref).
|
|
1827
|
+
*/
|
|
1828
|
+
export interface SBOMPackage {
|
|
1829
|
+
/**
|
|
1830
|
+
* SPDX license identifiers/expressions for this package.
|
|
1831
|
+
*/
|
|
1832
|
+
licenses?: string[];
|
|
1833
|
+
/**
|
|
1834
|
+
* Package name.
|
|
1835
|
+
*/
|
|
1836
|
+
name: string;
|
|
1837
|
+
/**
|
|
1838
|
+
* Package URL (purl) — the preferred cross-BOM identity key when present.
|
|
1839
|
+
*/
|
|
1840
|
+
purl?: string;
|
|
1841
|
+
/**
|
|
1842
|
+
* Package version.
|
|
1843
|
+
*/
|
|
1844
|
+
version?: string;
|
|
1710
1845
|
[property: string]: any;
|
|
1711
1846
|
}
|
|
1712
1847
|
/**
|
|
1713
|
-
* An override of a baseline input value for a specific component. Enables system-specific
|
|
1714
|
-
*
|
|
1848
|
+
* An override of a baseline input value for a specific component. Enables system-specific tailoring
|
|
1849
|
+
* of baseline parameters.
|
|
1715
1850
|
*/
|
|
1716
1851
|
export interface InputOverride {
|
|
1717
1852
|
/**
|
|
@@ -1745,16 +1880,11 @@ export declare enum CloudProvider {
|
|
|
1745
1880
|
Other = "other"
|
|
1746
1881
|
}
|
|
1747
1882
|
/**
|
|
1748
|
-
*
|
|
1749
|
-
|
|
1750
|
-
export declare enum SBOMFormat {
|
|
1751
|
-
Cyclonedx = "cyclonedx",
|
|
1752
|
-
Spdx = "spdx"
|
|
1753
|
-
}
|
|
1754
|
-
/**
|
|
1755
|
-
* Component type discriminator. Same values as Target types.
|
|
1883
|
+
* Component type discriminator. Same values as Target types, plus aiModel and dataset (thin
|
|
1884
|
+
* AI subject components whose detail lives in an attached ai-model / dataset BOM).
|
|
1756
1885
|
*/
|
|
1757
1886
|
export declare enum TargetType {
|
|
1887
|
+
AIModel = "aiModel",
|
|
1758
1888
|
Application = "application",
|
|
1759
1889
|
Artifact = "artifact",
|
|
1760
1890
|
CloudAccount = "cloudAccount",
|
|
@@ -1763,24 +1893,13 @@ export declare enum TargetType {
|
|
|
1763
1893
|
ContainerInstance = "containerInstance",
|
|
1764
1894
|
ContainerPlatform = "containerPlatform",
|
|
1765
1895
|
Database = "database",
|
|
1896
|
+
Dataset = "dataset",
|
|
1766
1897
|
Host = "host",
|
|
1767
1898
|
Network = "network",
|
|
1768
1899
|
Repository = "repository"
|
|
1769
1900
|
}
|
|
1770
1901
|
/**
|
|
1771
|
-
* Information about the tool that generated this file.
|
|
1772
|
-
*
|
|
1773
1902
|
* Information about the tool that generated this HDF file.
|
|
1774
|
-
*
|
|
1775
|
-
* The tool that generated this file.
|
|
1776
|
-
*
|
|
1777
|
-
* Information about the tool that generated this comparison.
|
|
1778
|
-
*
|
|
1779
|
-
* Information about the tool that generated this system document.
|
|
1780
|
-
*
|
|
1781
|
-
* Information about the tool that generated this plan.
|
|
1782
|
-
*
|
|
1783
|
-
* Information about the tool that generated this document.
|
|
1784
1903
|
*/
|
|
1785
1904
|
export interface Generator {
|
|
1786
1905
|
/**
|
|
@@ -1794,15 +1913,9 @@ export interface Generator {
|
|
|
1794
1913
|
[property: string]: any;
|
|
1795
1914
|
}
|
|
1796
1915
|
/**
|
|
1797
|
-
*
|
|
1798
|
-
*
|
|
1799
|
-
*
|
|
1800
|
-
* Reference to automated remediation resources for implementing security controls. Points
|
|
1801
|
-
* to external automation content like Ansible playbooks, Terraform scripts, or
|
|
1802
|
-
* vendor-provided remediation tools.
|
|
1803
|
-
*
|
|
1804
|
-
* Optional reference to automated remediation resources (Ansible playbooks, Terraform
|
|
1805
|
-
* scripts, etc.) for implementing the security controls defined in this baseline.
|
|
1916
|
+
* Reference to automated remediation resources for implementing security controls. Points to
|
|
1917
|
+
* external automation content like Ansible playbooks, Terraform scripts, or vendor-provided
|
|
1918
|
+
* remediation tools.
|
|
1806
1919
|
*/
|
|
1807
1920
|
export interface Remediation {
|
|
1808
1921
|
/**
|
|
@@ -1820,12 +1933,8 @@ export interface Remediation {
|
|
|
1820
1933
|
[property: string]: any;
|
|
1821
1934
|
}
|
|
1822
1935
|
/**
|
|
1823
|
-
* Information about the test execution environment
|
|
1824
|
-
*
|
|
1825
|
-
*
|
|
1826
|
-
* Information about the test execution environment. This is distinct from the target being
|
|
1827
|
-
* scanned - the runner is where the security tool executes, while targets are what is being
|
|
1828
|
-
* assessed.
|
|
1936
|
+
* Information about the test execution environment. This is distinct from the target being scanned
|
|
1937
|
+
* - the runner is where the security tool executes, while targets are what is being assessed.
|
|
1829
1938
|
*/
|
|
1830
1939
|
export interface Runner {
|
|
1831
1940
|
/**
|
|
@@ -1843,7 +1952,18 @@ export interface Runner {
|
|
|
1843
1952
|
*/
|
|
1844
1953
|
containerImage?: string;
|
|
1845
1954
|
/**
|
|
1846
|
-
* The
|
|
1955
|
+
* The directory domain the runner system belongs to (Active Directory / NetBIOS / LDAP),
|
|
1956
|
+
* NOT the DNS suffix of the FQDN. Example: 'CORP'.
|
|
1957
|
+
*/
|
|
1958
|
+
domain?: string;
|
|
1959
|
+
/**
|
|
1960
|
+
* The fully qualified domain name of the runner system, when known. Distinct from the short
|
|
1961
|
+
* 'hostname'; kept separate for the same reason as on host components (an FQDN is not
|
|
1962
|
+
* reliably decomposable). Example: 'ci-runner-01.build.example.com'.
|
|
1963
|
+
*/
|
|
1964
|
+
fqdn?: string;
|
|
1965
|
+
/**
|
|
1966
|
+
* The short hostname of the runner system. Example: 'ci-runner-01', 'jenkins-agent-03',
|
|
1847
1967
|
* 'k8s-node-worker-03'.
|
|
1848
1968
|
*/
|
|
1849
1969
|
hostname?: string;
|
|
@@ -1865,8 +1985,6 @@ export interface Runner {
|
|
|
1865
1985
|
[property: string]: any;
|
|
1866
1986
|
}
|
|
1867
1987
|
/**
|
|
1868
|
-
* Statistics for the assessment run, including duration and result counts.
|
|
1869
|
-
*
|
|
1870
1988
|
* Statistics for the assessment run(s) such as duration and result counts.
|
|
1871
1989
|
*/
|
|
1872
1990
|
export interface Statistics {
|
|
@@ -1881,8 +1999,6 @@ export interface Statistics {
|
|
|
1881
1999
|
[property: string]: any;
|
|
1882
2000
|
}
|
|
1883
2001
|
/**
|
|
1884
|
-
* Breakdowns of requirement statistics by result status.
|
|
1885
|
-
*
|
|
1886
2002
|
* Statistics for requirement results, grouped by status.
|
|
1887
2003
|
*/
|
|
1888
2004
|
export interface StatisticHash {
|
|
@@ -1909,17 +2025,7 @@ export interface StatisticHash {
|
|
|
1909
2025
|
[property: string]: any;
|
|
1910
2026
|
}
|
|
1911
2027
|
/**
|
|
1912
|
-
* Statistics for requirements that encountered an error during assessment.
|
|
1913
|
-
*
|
|
1914
2028
|
* Statistics for a given item, such as the total count.
|
|
1915
|
-
*
|
|
1916
|
-
* Statistics for requirements that failed.
|
|
1917
|
-
*
|
|
1918
|
-
* Statistics for requirements that are not applicable to the target.
|
|
1919
|
-
*
|
|
1920
|
-
* Statistics for requirements that were not reviewed (manual check required).
|
|
1921
|
-
*
|
|
1922
|
-
* Statistics for requirements that passed.
|
|
1923
2029
|
*/
|
|
1924
2030
|
export interface StatisticBlock {
|
|
1925
2031
|
/**
|
|
@@ -1929,12 +2035,8 @@ export interface StatisticBlock {
|
|
|
1929
2035
|
[property: string]: any;
|
|
1930
2036
|
}
|
|
1931
2037
|
/**
|
|
1932
|
-
* The security tool that produced the assessment data in this file.
|
|
1933
|
-
*
|
|
1934
|
-
* The security tool that produced the assessment data represented in this HDF file. Aligns
|
|
1935
|
-
* with SARIF, OSCAL, and CycloneDX terminology.
|
|
1936
|
-
*
|
|
1937
|
-
* The security tool that produced the assessment data in this source.
|
|
2038
|
+
* The security tool that produced the assessment data represented in this HDF file. Aligns with
|
|
2039
|
+
* SARIF, OSCAL, and CycloneDX terminology.
|
|
1938
2040
|
*/
|
|
1939
2041
|
export interface Tool {
|
|
1940
2042
|
/**
|
|
@@ -1955,11 +2057,8 @@ export interface Tool {
|
|
|
1955
2057
|
[property: string]: any;
|
|
1956
2058
|
}
|
|
1957
2059
|
/**
|
|
1958
|
-
* Information on the set of requirements that can be assessed, including baseline metadata
|
|
1959
|
-
*
|
|
1960
|
-
*
|
|
1961
|
-
* Shared metadata fields for baselines. Used in both standalone baseline documents and
|
|
1962
|
-
* evaluated baseline results.
|
|
2060
|
+
* Information on the set of requirements that can be assessed, including baseline metadata and
|
|
2061
|
+
* requirement definitions.
|
|
1963
2062
|
*/
|
|
1964
2063
|
export interface HDFBaseline {
|
|
1965
2064
|
/**
|
|
@@ -2043,9 +2142,6 @@ export interface HDFBaseline {
|
|
|
2043
2142
|
}
|
|
2044
2143
|
/**
|
|
2045
2144
|
* A requirement definition without assessment results.
|
|
2046
|
-
*
|
|
2047
|
-
* Core requirement fields shared between baseline requirements and evaluated requirements.
|
|
2048
|
-
* Contains the fundamental requirement definition without assessment results.
|
|
2049
2145
|
*/
|
|
2050
2146
|
export interface BaselineRequirement {
|
|
2051
2147
|
/**
|
|
@@ -2122,8 +2218,8 @@ export interface BaselineRequirement {
|
|
|
2122
2218
|
[property: string]: any;
|
|
2123
2219
|
}
|
|
2124
2220
|
/**
|
|
2125
|
-
* Structured comparison between two or more HDF security assessment documents. Supports
|
|
2126
|
-
*
|
|
2221
|
+
* Structured comparison between two or more HDF security assessment documents. Supports temporal,
|
|
2222
|
+
* baseline, fleet, and multi-source comparison modes.
|
|
2127
2223
|
*/
|
|
2128
2224
|
export interface HDFComparison {
|
|
2129
2225
|
/**
|
|
@@ -2142,7 +2238,8 @@ export interface HDFComparison {
|
|
|
2142
2238
|
*/
|
|
2143
2239
|
comparisonMode: ComparisonMode;
|
|
2144
2240
|
/**
|
|
2145
|
-
* Comparison of components between two system documents. Used in systemDrift mode.
|
|
2241
|
+
* Comparison of components between two system documents. Used in systemDrift mode. A
|
|
2242
|
+
* component's BOM changes surface as a field change on its boms[] here.
|
|
2146
2243
|
*/
|
|
2147
2244
|
componentDiffs?: ComponentDiff[];
|
|
2148
2245
|
/**
|
|
@@ -2172,7 +2269,11 @@ export interface HDFComparison {
|
|
|
2172
2269
|
*/
|
|
2173
2270
|
matching?: MatchingConfig;
|
|
2174
2271
|
/**
|
|
2175
|
-
*
|
|
2272
|
+
* RESERVED — not emitted by the current systemDrift comparison. systemDrift now reports a
|
|
2273
|
+
* component's BOM changes as a field change on its boms[] (see componentDiffs), and
|
|
2274
|
+
* standalone SBOM package diffing is a separate `hdf diff <sbom> <sbom>` output shape. This
|
|
2275
|
+
* field is retained for a future normalized package-level diff; consumers must not expect
|
|
2276
|
+
* it from today's systemDrift output.
|
|
2176
2277
|
*/
|
|
2177
2278
|
packageDiffs?: PackageDiff[];
|
|
2178
2279
|
/**
|
|
@@ -2220,8 +2321,6 @@ export interface Annotation {
|
|
|
2220
2321
|
[property: string]: any;
|
|
2221
2322
|
}
|
|
2222
2323
|
/**
|
|
2223
|
-
* The category of this annotation.
|
|
2224
|
-
*
|
|
2225
2324
|
* The category of an annotation attached to a comparison.
|
|
2226
2325
|
*/
|
|
2227
2326
|
export declare enum AnnotationCategory {
|
|
@@ -2269,13 +2368,11 @@ export declare enum BaselineDiffState {
|
|
|
2269
2368
|
Updated = "updated"
|
|
2270
2369
|
}
|
|
2271
2370
|
/**
|
|
2272
|
-
* The mode of comparison
|
|
2273
|
-
*
|
|
2274
|
-
*
|
|
2275
|
-
*
|
|
2276
|
-
*
|
|
2277
|
-
* baseline documents to detect requirement changes between versions. 'systemDrift' compares
|
|
2278
|
-
* two system documents to detect component-level changes.
|
|
2371
|
+
* The mode of comparison. 'temporal' compares the same target over time. 'baseline' compares
|
|
2372
|
+
* against a golden reference. 'fleet' compares across multiple systems. 'multiSource' compares
|
|
2373
|
+
* outputs from different scanners. 'baselineEvolution' compares two baseline documents to detect
|
|
2374
|
+
* requirement changes between versions. 'systemDrift' compares two system documents to detect
|
|
2375
|
+
* component-level changes.
|
|
2279
2376
|
*/
|
|
2280
2377
|
export declare enum ComparisonMode {
|
|
2281
2378
|
Baseline = "baseline",
|
|
@@ -2477,8 +2574,6 @@ export interface ScannerConflict {
|
|
|
2477
2574
|
[property: string]: any;
|
|
2478
2575
|
}
|
|
2479
2576
|
/**
|
|
2480
|
-
* How the conflict was resolved.
|
|
2481
|
-
*
|
|
2482
2577
|
* How a conflict between multiple scanner results was resolved.
|
|
2483
2578
|
*/
|
|
2484
2579
|
export declare enum ConflictResolution {
|
|
@@ -2503,13 +2598,9 @@ export interface Value {
|
|
|
2503
2598
|
[property: string]: any;
|
|
2504
2599
|
}
|
|
2505
2600
|
/**
|
|
2506
|
-
* The strategy
|
|
2507
|
-
*
|
|
2508
|
-
*
|
|
2509
|
-
* IDs. 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework
|
|
2510
|
-
* identifiers. 'fuzzyTitle'/'fuzzyContent' use text similarity.
|
|
2511
|
-
*
|
|
2512
|
-
* The primary strategy used to match requirements across sources.
|
|
2601
|
+
* The strategy used to match requirements across sources. 'exactId' matches by identical IDs.
|
|
2602
|
+
* 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework identifiers.
|
|
2603
|
+
* 'fuzzyTitle'/'fuzzyContent' use text similarity.
|
|
2513
2604
|
*/
|
|
2514
2605
|
export declare enum MatchStrategy {
|
|
2515
2606
|
CciMatch = "cciMatch",
|
|
@@ -2520,12 +2611,10 @@ export declare enum MatchStrategy {
|
|
|
2520
2611
|
NISTMatch = "nistMatch"
|
|
2521
2612
|
}
|
|
2522
2613
|
/**
|
|
2523
|
-
*
|
|
2524
|
-
*
|
|
2525
|
-
*
|
|
2526
|
-
*
|
|
2527
|
-
* changed (generic), 'fixed' = was failing now passing, 'regressed' = was passing now
|
|
2528
|
-
* failing, 'moved' = reorganized same content, 'split'/'merged' = reserved for v1.1.
|
|
2614
|
+
* SARIF-compatible vocabulary extended for security. 'new' = present only in new source, 'absent' =
|
|
2615
|
+
* present only in old, 'unchanged' = same effective status, 'updated' = status changed (generic),
|
|
2616
|
+
* 'fixed' = was failing now passing, 'regressed' = was passing now failing, 'moved' = reorganized
|
|
2617
|
+
* same content, 'split'/'merged' = reserved for v1.1.
|
|
2529
2618
|
*/
|
|
2530
2619
|
export declare enum RequirementState {
|
|
2531
2620
|
Absent = "absent",
|
|
@@ -2542,8 +2631,6 @@ export declare enum FormatVersion {
|
|
|
2542
2631
|
The100 = "1.0.0"
|
|
2543
2632
|
}
|
|
2544
2633
|
/**
|
|
2545
|
-
* Configuration for how requirements were matched across sources.
|
|
2546
|
-
*
|
|
2547
2634
|
* Configuration for how requirements are matched across sources.
|
|
2548
2635
|
*/
|
|
2549
2636
|
export interface MatchingConfig {
|
|
@@ -2570,15 +2657,22 @@ export interface MatchingConfig {
|
|
|
2570
2657
|
[property: string]: any;
|
|
2571
2658
|
}
|
|
2572
2659
|
/**
|
|
2573
|
-
* Comparison of a single
|
|
2660
|
+
* Comparison of a single BOM node between two BOM versions, matched by purl (software) or
|
|
2661
|
+
* identifier (models, datasets, hardware, crypto).
|
|
2574
2662
|
*/
|
|
2575
2663
|
export interface PackageDiff {
|
|
2664
|
+
/**
|
|
2665
|
+
* Generic identity key for matching a BOM node across versions when no purl applies — e.g.
|
|
2666
|
+
* a Hugging Face model ref, dataset uniqueId, crypto algorithm OID, or hardware part
|
|
2667
|
+
* number. At least one of purl or identifier is required.
|
|
2668
|
+
*/
|
|
2669
|
+
identifier?: string;
|
|
2576
2670
|
/**
|
|
2577
2671
|
* License identifiers for this package.
|
|
2578
2672
|
*/
|
|
2579
2673
|
licenses?: string[];
|
|
2580
2674
|
/**
|
|
2581
|
-
* Human-readable
|
|
2675
|
+
* Human-readable node name.
|
|
2582
2676
|
*/
|
|
2583
2677
|
name?: string;
|
|
2584
2678
|
/**
|
|
@@ -2590,9 +2684,11 @@ export interface PackageDiff {
|
|
|
2590
2684
|
*/
|
|
2591
2685
|
oldVersion?: string;
|
|
2592
2686
|
/**
|
|
2593
|
-
* Package URL (purl)
|
|
2687
|
+
* Package URL (purl) — the preferred identity key for matching software packages across
|
|
2688
|
+
* BOMs. Optional: BOM nodes without a purl (AI models, datasets, hardware parts, crypto
|
|
2689
|
+
* algorithms) key on identifier instead.
|
|
2594
2690
|
*/
|
|
2595
|
-
purl
|
|
2691
|
+
purl?: string;
|
|
2596
2692
|
/**
|
|
2597
2693
|
* The state of this package: added (new in new SBOM), removed (absent from new SBOM),
|
|
2598
2694
|
* updated (version changed), unchanged.
|
|
@@ -2677,8 +2773,6 @@ export declare enum OriginalFormat {
|
|
|
2677
2773
|
Xccdf = "xccdf"
|
|
2678
2774
|
}
|
|
2679
2775
|
/**
|
|
2680
|
-
* The role of this source in the comparison.
|
|
2681
|
-
*
|
|
2682
2776
|
* The role of a source document in the comparison.
|
|
2683
2777
|
*/
|
|
2684
2778
|
export declare enum SourceRole {
|
|
@@ -2763,8 +2857,6 @@ export interface ComparisonSummary {
|
|
|
2763
2857
|
[property: string]: any;
|
|
2764
2858
|
}
|
|
2765
2859
|
/**
|
|
2766
|
-
* State counts broken down by severity level.
|
|
2767
|
-
*
|
|
2768
2860
|
* Breakdown of state counts by severity level.
|
|
2769
2861
|
*/
|
|
2770
2862
|
export interface SeverityBreakdown {
|
|
@@ -2787,15 +2879,7 @@ export interface SeverityBreakdown {
|
|
|
2787
2879
|
[property: string]: any;
|
|
2788
2880
|
}
|
|
2789
2881
|
/**
|
|
2790
|
-
* State counts for critical severity requirements.
|
|
2791
|
-
*
|
|
2792
2882
|
* Counts of requirements in each state.
|
|
2793
|
-
*
|
|
2794
|
-
* State counts for high severity requirements.
|
|
2795
|
-
*
|
|
2796
|
-
* State counts for low severity requirements.
|
|
2797
|
-
*
|
|
2798
|
-
* State counts for medium severity requirements.
|
|
2799
2883
|
*/
|
|
2800
2884
|
export interface StateCounts {
|
|
2801
2885
|
/**
|
|
@@ -2871,8 +2955,8 @@ export interface PerSourceSummary {
|
|
|
2871
2955
|
[property: string]: any;
|
|
2872
2956
|
}
|
|
2873
2957
|
/**
|
|
2874
|
-
* Describes a system's authorization boundary, components, and interconnections. Maps to
|
|
2875
|
-
*
|
|
2958
|
+
* Describes a system's authorization boundary, components, and interconnections. Maps to OSCAL SSP
|
|
2959
|
+
* system-characteristics and FedRAMP system inventory.
|
|
2876
2960
|
*/
|
|
2877
2961
|
export interface HDFSystem {
|
|
2878
2962
|
/**
|
|
@@ -2883,6 +2967,13 @@ export interface HDFSystem {
|
|
|
2883
2967
|
* Current Authorization to Operate (ATO) status.
|
|
2884
2968
|
*/
|
|
2885
2969
|
authorizationStatus?: AuthorizationStatus;
|
|
2970
|
+
/**
|
|
2971
|
+
* System-scoped Bills of Materials whose subject is the authorization boundary rather than
|
|
2972
|
+
* a single component (e.g. a SaaSBOM of services, a KBOM of cluster inventory, an OBOM).
|
|
2973
|
+
* Component-scoped BOMs (SBOM, ai-model) attach on the component instead. See
|
|
2974
|
+
* primitives/bom.schema.json.
|
|
2975
|
+
*/
|
|
2976
|
+
boms?: BillOfMaterials[];
|
|
2886
2977
|
/**
|
|
2887
2978
|
* Description of the system's authorization boundary. Example: network CIDR blocks, cloud
|
|
2888
2979
|
* VPC IDs, physical locations.
|
|
@@ -2894,7 +2985,8 @@ export interface HDFSystem {
|
|
|
2894
2985
|
categorizationLevel?: CategorizationLevel;
|
|
2895
2986
|
/**
|
|
2896
2987
|
* System components within the authorization boundary. Uses the full polymorphic Component
|
|
2897
|
-
* type with stable identity (componentId), external references, and
|
|
2988
|
+
* type with stable identity (componentId), external references, and generalized BOM
|
|
2989
|
+
* attachment (boms[]).
|
|
2898
2990
|
*/
|
|
2899
2991
|
components: Component[];
|
|
2900
2992
|
/**
|
|
@@ -2958,8 +3050,6 @@ export interface HDFSystem {
|
|
|
2958
3050
|
[property: string]: any;
|
|
2959
3051
|
}
|
|
2960
3052
|
/**
|
|
2961
|
-
* Current Authorization to Operate (ATO) status.
|
|
2962
|
-
*
|
|
2963
3053
|
* Authorization to Operate (ATO) status for the system.
|
|
2964
3054
|
*/
|
|
2965
3055
|
export declare enum AuthorizationStatus {
|
|
@@ -2971,8 +3061,6 @@ export declare enum AuthorizationStatus {
|
|
|
2971
3061
|
Revoked = "revoked"
|
|
2972
3062
|
}
|
|
2973
3063
|
/**
|
|
2974
|
-
* FIPS 199 security categorization (impact level).
|
|
2975
|
-
*
|
|
2976
3064
|
* FIPS 199 security categorization level (impact level).
|
|
2977
3065
|
*/
|
|
2978
3066
|
export declare enum CategorizationLevel {
|
|
@@ -2981,10 +3069,10 @@ export declare enum CategorizationLevel {
|
|
|
2981
3069
|
Moderate = "moderate"
|
|
2982
3070
|
}
|
|
2983
3071
|
/**
|
|
2984
|
-
* Declares a control's designation within a system — whether it is common (provided by
|
|
2985
|
-
*
|
|
2986
|
-
*
|
|
2987
|
-
*
|
|
3072
|
+
* Declares a control's designation within a system — whether it is common (provided by another
|
|
3073
|
+
* component or system), system-specific (implemented locally), or hybrid (shared responsibility).
|
|
3074
|
+
* Maps to NIST SP 800-53 Appendix C control designations and OSCAL SSP by-component
|
|
3075
|
+
* provided/inherited semantics.
|
|
2988
3076
|
*/
|
|
2989
3077
|
export interface ControlDesignation {
|
|
2990
3078
|
/**
|
|
@@ -3031,9 +3119,9 @@ export declare enum Designation {
|
|
|
3031
3119
|
SystemSpecific = "system-specific"
|
|
3032
3120
|
}
|
|
3033
3121
|
/**
|
|
3034
|
-
* A data flow between two endpoints. The 'from' endpoint is always a local component; the
|
|
3035
|
-
*
|
|
3036
|
-
*
|
|
3122
|
+
* A data flow between two endpoints. The 'from' endpoint is always a local component; the 'to'
|
|
3123
|
+
* endpoint can be local, cross-system, or external. Use 'direction' to indicate whether data flows
|
|
3124
|
+
* one-way or both ways.
|
|
3037
3125
|
*/
|
|
3038
3126
|
export interface DataFlow {
|
|
3039
3127
|
/**
|
|
@@ -3080,8 +3168,8 @@ export declare enum Direction {
|
|
|
3080
3168
|
Unidirectional = "unidirectional"
|
|
3081
3169
|
}
|
|
3082
3170
|
/**
|
|
3083
|
-
* Defines an assessment plan — what baselines to run against which targets, with resolved
|
|
3084
|
-
*
|
|
3171
|
+
* Defines an assessment plan — what baselines to run against which targets, with resolved inputs
|
|
3172
|
+
* and scheduling. Maps to OSCAL Assessment Plan.
|
|
3085
3173
|
*/
|
|
3086
3174
|
export interface HDFPlan {
|
|
3087
3175
|
/**
|
|
@@ -3136,8 +3224,8 @@ export interface HDFPlan {
|
|
|
3136
3224
|
[property: string]: any;
|
|
3137
3225
|
}
|
|
3138
3226
|
/**
|
|
3139
|
-
* A single assessment within a plan — defines which baseline to run against which targets
|
|
3140
|
-
*
|
|
3227
|
+
* A single assessment within a plan — defines which baseline to run against which targets with what
|
|
3228
|
+
* configuration.
|
|
3141
3229
|
*/
|
|
3142
3230
|
export interface Assessment {
|
|
3143
3231
|
/**
|
|
@@ -3176,8 +3264,6 @@ export interface Assessment {
|
|
|
3176
3264
|
[property: string]: any;
|
|
3177
3265
|
}
|
|
3178
3266
|
/**
|
|
3179
|
-
* Runner/scanner configuration for this assessment.
|
|
3180
|
-
*
|
|
3181
3267
|
* Configuration for the assessment runner/scanner.
|
|
3182
3268
|
*/
|
|
3183
3269
|
export interface RunnerConfig {
|
|
@@ -3192,8 +3278,6 @@ export interface RunnerConfig {
|
|
|
3192
3278
|
[property: string]: any;
|
|
3193
3279
|
}
|
|
3194
3280
|
/**
|
|
3195
|
-
* Optional scheduling configuration for recurring assessments.
|
|
3196
|
-
*
|
|
3197
3281
|
* Scheduling configuration for recurring assessments.
|
|
3198
3282
|
*/
|
|
3199
3283
|
export interface Schedule {
|
|
@@ -3221,10 +3305,8 @@ export interface Schedule {
|
|
|
3221
3305
|
[property: string]: any;
|
|
3222
3306
|
}
|
|
3223
3307
|
/**
|
|
3224
|
-
* The type of assessment
|
|
3225
|
-
*
|
|
3226
|
-
* The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed,
|
|
3227
|
-
* 'hybrid' for both.
|
|
3308
|
+
* The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed, 'hybrid'
|
|
3309
|
+
* for both.
|
|
3228
3310
|
*/
|
|
3229
3311
|
export declare enum PlanType {
|
|
3230
3312
|
Automated = "automated",
|
|
@@ -3232,8 +3314,8 @@ export declare enum PlanType {
|
|
|
3232
3314
|
Manual = "manual"
|
|
3233
3315
|
}
|
|
3234
3316
|
/**
|
|
3235
|
-
* Waivers, attestations, and POA&Ms that modify requirement compliance status or impact.
|
|
3236
|
-
*
|
|
3317
|
+
* Waivers, attestations, and POA&Ms that modify requirement compliance status or impact. Amendments
|
|
3318
|
+
* are standalone documents that can be applied to results via merge operations.
|
|
3237
3319
|
*/
|
|
3238
3320
|
export interface HDFAmendments {
|
|
3239
3321
|
/**
|
|
@@ -3292,18 +3374,18 @@ export interface HDFAmendments {
|
|
|
3292
3374
|
[property: string]: any;
|
|
3293
3375
|
}
|
|
3294
3376
|
/**
|
|
3295
|
-
* A standalone override to a requirement's compliance status or risk impact. Validation has
|
|
3296
|
-
*
|
|
3297
|
-
*
|
|
3298
|
-
* (documentation-only). For all other types, at least one of 'status' or 'impact' must be
|
|
3299
|
-
*
|
|
3377
|
+
* A standalone override to a requirement's compliance status or risk impact. Validation has two
|
|
3378
|
+
* branches gated on 'type': when type is 'operationalRequirement', neither 'status' nor 'impact'
|
|
3379
|
+
* may be set — the override records accepted risk without changing the finding
|
|
3380
|
+
* (documentation-only). For all other types, at least one of 'status' or 'impact' must be set. This
|
|
3381
|
+
* rule aligns with: (1) OSCAL Assessment Results — finding.target.status and
|
|
3300
3382
|
* finding.associated-risk[].facet[] are separate axes
|
|
3301
|
-
* (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2)
|
|
3302
|
-
*
|
|
3303
|
-
*
|
|
3304
|
-
* (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3)
|
|
3305
|
-
*
|
|
3306
|
-
*
|
|
3383
|
+
* (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2) FedRAMP
|
|
3384
|
+
* deviation request types — Risk Adjustment changes impact only, Operational Requirement documents
|
|
3385
|
+
* acceptance only, False Positive changes status
|
|
3386
|
+
* (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3) NIST SP
|
|
3387
|
+
* 800-37 RMF — risk response (accept/mitigate/transfer) is a separate step from control assessment
|
|
3388
|
+
* status (https://csrc.nist.gov/pubs/sp/800/37/r2/final).
|
|
3307
3389
|
*/
|
|
3308
3390
|
export interface StandaloneOverride {
|
|
3309
3391
|
/**
|
|
@@ -3400,9 +3482,8 @@ export interface StandaloneOverride {
|
|
|
3400
3482
|
[property: string]: any;
|
|
3401
3483
|
}
|
|
3402
3484
|
/**
|
|
3403
|
-
* Bundles references to all HDF documents for audit, authorization, and compliance review.
|
|
3404
|
-
*
|
|
3405
|
-
* verification.
|
|
3485
|
+
* Bundles references to all HDF documents for audit, authorization, and compliance review. Each
|
|
3486
|
+
* content entry references a document by type, URI, and checksum for integrity verification.
|
|
3406
3487
|
*/
|
|
3407
3488
|
export interface HDFEvidencePackage {
|
|
3408
3489
|
/**
|
|
@@ -3417,6 +3498,13 @@ export interface HDFEvidencePackage {
|
|
|
3417
3498
|
* Description of the evidence package's purpose and scope.
|
|
3418
3499
|
*/
|
|
3419
3500
|
description?: string;
|
|
3501
|
+
/**
|
|
3502
|
+
* References to external native-format evidence (log/telemetry corpora and other artifacts)
|
|
3503
|
+
* carried by URI + integrity hash + format discriminator, without recreating the data
|
|
3504
|
+
* inside HDF. Logs in ECS/OCSF/etc. are legitimate accreditation evidence; HDF indexes them
|
|
3505
|
+
* here rather than transcoding them.
|
|
3506
|
+
*/
|
|
3507
|
+
externalEvidence?: ExternalEvidenceReference[];
|
|
3420
3508
|
/**
|
|
3421
3509
|
* Information about the tool that generated this document.
|
|
3422
3510
|
*/
|
|
@@ -3471,10 +3559,8 @@ export interface HDFEvidencePackage {
|
|
|
3471
3559
|
[property: string]: any;
|
|
3472
3560
|
}
|
|
3473
3561
|
/**
|
|
3474
|
-
*
|
|
3475
|
-
*
|
|
3476
|
-
* Informational summary of assessment completeness. Not authoritative — tools should
|
|
3477
|
-
* compute these from the referenced documents.
|
|
3562
|
+
* Informational summary of assessment completeness. Not authoritative — tools should compute these
|
|
3563
|
+
* from the referenced documents.
|
|
3478
3564
|
*/
|
|
3479
3565
|
export interface CompletenessCheck {
|
|
3480
3566
|
/**
|
|
@@ -3504,8 +3590,6 @@ export interface CompletenessCheck {
|
|
|
3504
3590
|
[property: string]: any;
|
|
3505
3591
|
}
|
|
3506
3592
|
/**
|
|
3507
|
-
* SBOM coverage across system components.
|
|
3508
|
-
*
|
|
3509
3593
|
* SBOM coverage statistics for the system.
|
|
3510
3594
|
*/
|
|
3511
3595
|
export interface SBOMCoverage {
|
|
@@ -3520,7 +3604,7 @@ export interface SBOMCoverage {
|
|
|
3520
3604
|
[property: string]: any;
|
|
3521
3605
|
}
|
|
3522
3606
|
/**
|
|
3523
|
-
* A reference to an HDF document or
|
|
3607
|
+
* A reference to an HDF document or BOM/manifest included in the evidence package.
|
|
3524
3608
|
*/
|
|
3525
3609
|
export interface ContentReference {
|
|
3526
3610
|
/**
|
|
@@ -3547,16 +3631,92 @@ export interface ContentReference {
|
|
|
3547
3631
|
[property: string]: any;
|
|
3548
3632
|
}
|
|
3549
3633
|
/**
|
|
3550
|
-
* The type of
|
|
3551
|
-
*
|
|
3552
|
-
*
|
|
3634
|
+
* The type of document referenced in the evidence package. 'bom' covers any
|
|
3635
|
+
* Bill-of-Materials/manifest document (SBOM, AI model/dataset, and reserved future kinds) — its
|
|
3636
|
+
* specific kind is carried by the referenced document's bomType, not by a per-kind Content_Type
|
|
3637
|
+
* value.
|
|
3553
3638
|
*/
|
|
3554
3639
|
export declare enum ContentType {
|
|
3640
|
+
BOM = "bom",
|
|
3555
3641
|
HdfAmendments = "hdf-amendments",
|
|
3556
3642
|
HdfBaseline = "hdf-baseline",
|
|
3557
3643
|
HdfComparison = "hdf-comparison",
|
|
3558
3644
|
HdfPlan = "hdf-plan",
|
|
3559
3645
|
HdfResults = "hdf-results",
|
|
3560
|
-
HdfSystem = "hdf-system"
|
|
3561
|
-
|
|
3646
|
+
HdfSystem = "hdf-system"
|
|
3647
|
+
}
|
|
3648
|
+
/**
|
|
3649
|
+
* A reference to external native-format evidence (log/telemetry corpus or other artifact) carried
|
|
3650
|
+
* by URI + integrity hash + format discriminator. Reference-only: the artifact is never embedded
|
|
3651
|
+
* (corpora can be huge) or transcoded (that would be lossy) — it stays canonical in its native
|
|
3652
|
+
* format and HDF acts as the structured index.
|
|
3653
|
+
*/
|
|
3654
|
+
export interface ExternalEvidenceReference {
|
|
3655
|
+
/**
|
|
3656
|
+
* Cryptographic checksum of the referenced artifact for integrity verification.
|
|
3657
|
+
*/
|
|
3658
|
+
checksum?: Checksum;
|
|
3659
|
+
/**
|
|
3660
|
+
* Optional human-readable description of this evidence entry.
|
|
3661
|
+
*/
|
|
3662
|
+
description?: string;
|
|
3663
|
+
/**
|
|
3664
|
+
* The native format discriminator of the referenced artifact.
|
|
3665
|
+
*/
|
|
3666
|
+
format: string;
|
|
3667
|
+
/**
|
|
3668
|
+
* Optional producer-declared version of the format (e.g. ECS '9.4.0', OCSF '1.8.0').
|
|
3669
|
+
* Free-text and untrusted — HDF does not validate it against a registry.
|
|
3670
|
+
*/
|
|
3671
|
+
formatVersion?: string;
|
|
3672
|
+
/**
|
|
3673
|
+
* Optional IANA media type describing the on-disk serialization, orthogonal to 'format'
|
|
3674
|
+
* (the semantic standard). Examples: application/x-ndjson, application/json,
|
|
3675
|
+
* application/vnd.apache.parquet, text/csv.
|
|
3676
|
+
*/
|
|
3677
|
+
mediaType?: string;
|
|
3678
|
+
/**
|
|
3679
|
+
* Optional descriptive metadata about the referenced corpus. Does not affect integrity.
|
|
3680
|
+
*/
|
|
3681
|
+
metadata?: ExternalEvidenceMetadata;
|
|
3682
|
+
/**
|
|
3683
|
+
* URI to the external native-format evidence artifact (log/telemetry corpus, etc.). Can be
|
|
3684
|
+
* a relative path or absolute URL. The data stays canonical in its native format — HDF
|
|
3685
|
+
* references it, never parses or transcodes it.
|
|
3686
|
+
*/
|
|
3687
|
+
uri: string;
|
|
3688
|
+
[property: string]: any;
|
|
3689
|
+
}
|
|
3690
|
+
/**
|
|
3691
|
+
* Descriptive metadata about a referenced external evidence corpus. Does not affect integrity.
|
|
3692
|
+
*/
|
|
3693
|
+
export interface ExternalEvidenceMetadata {
|
|
3694
|
+
/**
|
|
3695
|
+
* The tool/pipeline that collected or produced the corpus. Example: 'aws-security-lake',
|
|
3696
|
+
* 'elastic-agent'.
|
|
3697
|
+
*/
|
|
3698
|
+
collector?: string;
|
|
3699
|
+
/**
|
|
3700
|
+
* Approximate number of records/events in the referenced corpus.
|
|
3701
|
+
*/
|
|
3702
|
+
recordCount?: number;
|
|
3703
|
+
/**
|
|
3704
|
+
* The time window the referenced evidence covers.
|
|
3705
|
+
*/
|
|
3706
|
+
timeRange?: ExternalEvidenceTimeRange;
|
|
3707
|
+
[property: string]: any;
|
|
3708
|
+
}
|
|
3709
|
+
/**
|
|
3710
|
+
* The time window a referenced external evidence corpus covers.
|
|
3711
|
+
*/
|
|
3712
|
+
export interface ExternalEvidenceTimeRange {
|
|
3713
|
+
/**
|
|
3714
|
+
* End of the time window the corpus covers (ISO 8601).
|
|
3715
|
+
*/
|
|
3716
|
+
end?: Date;
|
|
3717
|
+
/**
|
|
3718
|
+
* Start of the time window the corpus covers (ISO 8601).
|
|
3719
|
+
*/
|
|
3720
|
+
start?: Date;
|
|
3721
|
+
[property: string]: any;
|
|
3562
3722
|
}
|