@mitre/hdf-schema 3.5.1 → 3.6.0-rc.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/ts/hdf.d.ts CHANGED
@@ -265,11 +265,13 @@ export interface ExternalReference {
265
265
  description?: string;
266
266
  /**
267
267
  * Optional lossless embedded copy of the referenced artifact — the raw STIX object, EPSS
268
- * record, advisory, or annotation payload — preserved verbatim. Composes with
269
- * `href`/`externalId` (which point at the artifact) and `checksum` (which ties the copy to
270
- * the source): a single entry can both point and embed. HDF stays payload-agnostic — the
271
- * content is carried untouched, never normalized into HDF fields — so this does not
272
- * duplicate the source ontology (e.g. STIX rides here unchanged).
268
+ * record, advisory, or annotation payload — preserved verbatim.
269
+ *
270
+ * Composes with `href`/`externalId` (which point at the artifact) and `checksum` (which
271
+ * ties the copy to the source): a single entry can both point and embed.
272
+ *
273
+ * HDF stays payload-agnostic — the content is carried untouched, never normalized into HDF
274
+ * fields — so this does not duplicate the source ontology (e.g. STIX rides here unchanged).
273
275
  */
274
276
  document?: {
275
277
  [key: string]: any;
@@ -288,10 +290,15 @@ export interface ExternalReference {
288
290
  href?: string;
289
291
  /**
290
292
  * Open token classifying the referenced/embedded payload, turning a bare reference into an
291
- * enrichment envelope. Deliberately open (like `sourceName`/`rel`), not a closed enum.
293
+ * enrichment envelope.
294
+ *
295
+ * Deliberately open (like `sourceName`/`rel`), not a closed enum.
296
+ *
292
297
  * Documented starter vocabulary: 'threat-intel' (STIX/CTI object), 'annotation' (human
293
298
  * triage note), 'exploitation' (EPSS/KEV signal carried as context), 'advisory'
294
- * (vendor/security advisory). Use the `x-` prefix for custom kinds.
299
+ * (vendor/security advisory).
300
+ *
301
+ * Use the `x-` prefix for custom kinds.
295
302
  */
296
303
  kind?: string;
297
304
  /**
@@ -330,25 +337,27 @@ export interface Identity {
330
337
  */
331
338
  identifier: string;
332
339
  /**
333
- * The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
334
- * 'system' for deterministic non-interactive automation (CI jobs, cron, scanners), 'agent'
335
- * for an AI/LLM agent acting with autonomy — kept distinct from 'system' so auditors can
336
- * apply AI-specific scrutiny (e.g. 'an LLM proposed this' vs a deterministic job) and
337
- * satisfy AI-source disclosure under frameworks like the EU AI Act and NIST AI RMF,
338
- * 'simple' for basic string identifiers without additional classification, or 'other' for
339
- * custom identity systems.
340
+ * The type of identifier.
341
+ *
342
+ * Use 'email' for email addresses, 'username' for user accounts, 'system' for deterministic
343
+ * non-interactive automation (CI jobs, cron, scanners), 'agent' for an AI/LLM agent acting
344
+ * with autonomy — kept distinct from 'system' so auditors can apply AI-specific scrutiny
345
+ * (e.g. 'an LLM proposed this' vs a deterministic job) and satisfy AI-source disclosure
346
+ * under frameworks like the EU AI Act and NIST AI RMF, 'simple' for basic string
347
+ * identifiers without additional classification, or 'other' for custom identity systems.
340
348
  */
341
349
  type: IdentityType;
342
350
  [property: string]: any;
343
351
  }
344
352
  /**
345
- * The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
346
- * 'system' for deterministic non-interactive automation (CI jobs, cron, scanners), 'agent'
347
- * for an AI/LLM agent acting with autonomy — kept distinct from 'system' so auditors can
348
- * apply AI-specific scrutiny (e.g. 'an LLM proposed this' vs a deterministic job) and
349
- * satisfy AI-source disclosure under frameworks like the EU AI Act and NIST AI RMF,
350
- * 'simple' for basic string identifiers without additional classification, or 'other' for
351
- * custom identity systems.
353
+ * The type of identifier.
354
+ *
355
+ * Use 'email' for email addresses, 'username' for user accounts, 'system' for deterministic
356
+ * non-interactive automation (CI jobs, cron, scanners), 'agent' for an AI/LLM agent acting
357
+ * with autonomy — kept distinct from 'system' so auditors can apply AI-specific scrutiny
358
+ * (e.g. 'an LLM proposed this' vs a deterministic job) and satisfy AI-source disclosure
359
+ * under frameworks like the EU AI Act and NIST AI RMF, 'simple' for basic string
360
+ * identifiers without additional classification, or 'other' for custom identity systems.
352
361
  */
353
362
  export declare enum IdentityType {
354
363
  Agent = "agent",
@@ -553,12 +562,17 @@ export interface EvaluatedRequirement {
553
562
  disposition?: OverrideType;
554
563
  /**
555
564
  * Checksum of this requirement's resolved effective posture, for per-control change
556
- * detection in continuous monitoring. sha256 over the canonical JSON object with keys
557
- * status, impact, disposition (in that order), holding the resolved effective status,
558
- * resolved effective impact, and governing override type (null when nothing governs), with
559
- * override expiry anchored to the document timestamp. Flips exactly when the operative
560
- * status, impact, or disposition changes; stable under all other churn (result details,
561
- * timestamps, tags). Optional; stamped by tooling (hdf convert, hdf amend apply).
565
+ * detection in continuous monitoring.
566
+ *
567
+ * sha256 over the canonical JSON object with keys status, impact, disposition (in that
568
+ * order), holding the resolved effective status, resolved effective impact, and governing
569
+ * override type (null when nothing governs), with override expiry anchored to the document
570
+ * timestamp.
571
+ *
572
+ * Flips exactly when the operative status, impact, or disposition changes; stable under all
573
+ * other churn (result details, timestamps, tags).
574
+ *
575
+ * Optional; stamped by tooling (hdf convert, hdf amend apply).
562
576
  */
563
577
  effectiveChecksum?: Checksum;
564
578
  /**
@@ -630,10 +644,14 @@ export interface EvaluatedRequirement {
630
644
  [key: string]: any;
631
645
  };
632
646
  /**
633
- * Whether the requirement is mandatory within its baseline. Distinct from severity (risk
634
- * weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
635
- * FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
636
- * memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
647
+ * Whether the requirement is mandatory within its baseline.
648
+ *
649
+ * Distinct from severity (risk weight) and status (lifecycle state).
650
+ *
651
+ * Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop, FedRAMP 20x inline 'Optional:'
652
+ * markers, CMMC sublevel rows, and CIS Implementation Group memberships (IG1/IG2/IG3 may
653
+ * carry richer semantics; layer those onto props[]/tags{}).
654
+ *
637
655
  * Optional: when omitted, consumers should treat the requirement as 'required' by
638
656
  * convention.
639
657
  */
@@ -647,11 +665,15 @@ export interface EvaluatedRequirement {
647
665
  code?: string;
648
666
  /**
649
667
  * Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
650
- * categories. 'policy' = an authored governance statement; 'procedure' = a documented
651
- * process; 'technical' = an enforced technical configuration; 'management' = a
668
+ * categories.
669
+ *
670
+ * 'policy' = an authored governance statement; 'procedure' = a documented process;
671
+ * 'technical' = an enforced technical configuration; 'management' = a
652
672
  * programmatic/management activity; 'operational' = a recurring operational activity (e.g.
653
- * AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
654
- * family/id but should not assume a default.
673
+ * AT, IR, MA families).
674
+ *
675
+ * Optional: when omitted, consumers may infer heuristically from family/id but should not
676
+ * assume a default.
655
677
  */
656
678
  controlType?: ControlType;
657
679
  /**
@@ -670,12 +692,17 @@ export interface EvaluatedRequirement {
670
692
  */
671
693
  title?: string;
672
694
  /**
673
- * How this requirement is intended to be verified. Disambiguates the two cases that null
674
- * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
675
- * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
676
- * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
677
- * runs without operator action; 'hybrid' = part automated, part manual. Optional: when
678
- * omitted, consumers should not infer a default.
695
+ * How this requirement is intended to be verified.
696
+ *
697
+ * Disambiguates the two cases that null 'code' overloads: 'manual-by-design' (the
698
+ * requirement is statement-form and not amenable to automation, e.g. FedRAMP 20x KSIs);
699
+ * 'manual-pending-automation' (automation could exist but does not yet, e.g. a STIG rule
700
+ * lacking a fix).
701
+ *
702
+ * 'automated' = a check exists and runs without operator action; 'hybrid' = part automated,
703
+ * part manual.
704
+ *
705
+ * Optional: when omitted, consumers should not infer a default.
679
706
  */
680
707
  verificationMethod?: VerificationMethodEnum;
681
708
  [property: string]: any;
@@ -695,7 +722,7 @@ export interface AffectedPackage {
695
722
  * Optional CPE 2.3 URI identifying the affected product. Validated leniently: only the
696
723
  * 'cpe:2.3:' prefix and the part-type letter ('a' application, 'h' hardware, 'o' operating
697
724
  * system) are enforced here. Use `hdf-utilities.parseCpe` for full-grammar parsing.
698
- * Example: 'cpe:2.3:a:openssl:openssl:1.1.1k:*:*:*:*:*:*:*'.
725
+ * Example: `cpe:2.3:a:openssl:openssl:1.1.1k:*:*:*:*:*:*:*`.
699
726
  */
700
727
  cpe?: string;
701
728
  /**
@@ -715,11 +742,16 @@ export interface AffectedPackage {
715
742
  */
716
743
  name?: string;
717
744
  /**
718
- * Optional Package URL (PURL) identifying the affected package. Validated leniently: only
719
- * the 'pkg:TYPE/' scheme prefix is enforced here, where TYPE follows the PURL grammar (a
720
- * letter followed by letters, digits, '.', '+', or '-') and is matched case-insensitively
721
- * to mirror `hdf-utilities.parsePurl`'s accept-and-warn behavior. Use `parsePurl` for full
722
- * PURL parsing. Example: 'pkg:rpm/redhat/openssl@1.1.1k-7.el8_4?arch=x86_64'.
745
+ * Optional Package URL (PURL) identifying the affected package.
746
+ *
747
+ * Validated leniently: only the 'pkg:TYPE/' scheme prefix is enforced here, where TYPE
748
+ * follows the PURL grammar (a letter followed by letters, digits, '.', '+', or '-') and is
749
+ * matched case-insensitively to mirror `hdf-utilities.parsePurl`'s accept-and-warn
750
+ * behavior.
751
+ *
752
+ * Use `parsePurl` for full PURL parsing.
753
+ *
754
+ * Example: 'pkg:rpm/redhat/openssl@1.1.1k-7.el8_4?arch=x86_64'.
723
755
  */
724
756
  purl?: string;
725
757
  /**
@@ -747,10 +779,14 @@ export declare enum Ecosystem {
747
779
  RPM = "rpm"
748
780
  }
749
781
  /**
750
- * Whether the requirement is mandatory within its baseline. Distinct from severity (risk
751
- * weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
752
- * FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
753
- * memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
782
+ * Whether the requirement is mandatory within its baseline.
783
+ *
784
+ * Distinct from severity (risk weight) and status (lifecycle state).
785
+ *
786
+ * Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop, FedRAMP 20x inline 'Optional:'
787
+ * markers, CMMC sublevel rows, and CIS Implementation Group memberships (IG1/IG2/IG3 may
788
+ * carry richer semantics; layer those onto props[]/tags{}).
789
+ *
754
790
  * Optional: when omitted, consumers should treat the requirement as 'required' by
755
791
  * convention.
756
792
  */
@@ -761,11 +797,15 @@ export declare enum Applicability {
761
797
  }
762
798
  /**
763
799
  * Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
764
- * categories. 'policy' = an authored governance statement; 'procedure' = a documented
765
- * process; 'technical' = an enforced technical configuration; 'management' = a
800
+ * categories.
801
+ *
802
+ * 'policy' = an authored governance statement; 'procedure' = a documented process;
803
+ * 'technical' = an enforced technical configuration; 'management' = a
766
804
  * programmatic/management activity; 'operational' = a recurring operational activity (e.g.
767
- * AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
768
- * family/id but should not assume a default.
805
+ * AT, IR, MA families).
806
+ *
807
+ * Optional: when omitted, consumers may infer heuristically from family/id but should not
808
+ * assume a default.
769
809
  */
770
810
  export declare enum ControlType {
771
811
  Management = "management",
@@ -795,11 +835,15 @@ export interface Cvss {
795
835
  baseSeverity?: CVSSSeverity;
796
836
  /**
797
837
  * Optional Base metric group vector string as emitted by the source (e.g.,
798
- * 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'). For CVSS 2.0 the version prefix is
799
- * omitted. Some vendor tools emit a final baseScore without the vector — in that case this
800
- * field is absent and the score cannot be recomputed or decomposed. The pattern accepts any
801
- * version-prefixed or prefix-less metric token sequence; semantic validity of individual
802
- * metrics is checked by hdf-utilities, not by the schema.
838
+ * 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H').
839
+ *
840
+ * For CVSS 2.0 the version prefix is omitted.
841
+ *
842
+ * Some vendor tools emit a final baseScore without the vector — in that case this field is
843
+ * absent and the score cannot be recomputed or decomposed.
844
+ *
845
+ * The pattern accepts any version-prefixed or prefix-less metric token sequence; semantic
846
+ * validity of individual metrics is checked by hdf-utilities, not by the schema.
803
847
  */
804
848
  baseVector?: string;
805
849
  /**
@@ -886,19 +930,19 @@ export interface Description {
886
930
  [property: string]: any;
887
931
  }
888
932
  /**
889
- * The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk accepted
890
- * by Authorizing Official. 'attestation': manually verified by assessor. 'poam': remediation
891
- * tracked (no status change). 'inherited': control provided by another component or system.
892
- * 'falsePositive': scanner incorrectly identified a finding — for compliance scans (STIG, CIS), the
893
- * check actually passes, so status is typically set to 'passed'; for vulnerability scans (CVE,
894
- * SCA), the flagged vulnerability does not apply to this system, so status is typically set to
895
- * 'notApplicable'. The disposition field on the requirement distinguishes false positives from
896
- * genuinely not-applicable findings. 'riskAdjustment': impact score adjusted based on environmental
897
- * context (FedRAMP Risk Adjustment); does not change pass/fail status, only impact via the impact
898
- * field. 'operationalRequirement': deviation required by operational constraints (FedRAMP
899
- * Operational Requirement); the finding cannot be remediated because the system requires the
900
- * affected functionality. Remains an open risk. Migration note: 'exception' was removed in v3.1.0 —
901
- * use 'waiver' with status 'notApplicable' instead.
933
+ * The type of amendment, aligned with FedRAMP deviation request categories. - 'waiver': risk
934
+ * accepted by Authorizing Official. - 'attestation': manually verified by assessor. - 'poam':
935
+ * remediation tracked (no status change). - 'inherited': control provided by another component or
936
+ * system. - 'falsePositive': scanner incorrectly identified a finding — for compliance scans (STIG,
937
+ * CIS), the check actually passes, so status is typically set to 'passed'; for vulnerability scans
938
+ * (CVE, SCA), the flagged vulnerability does not apply to this system, so status is typically set
939
+ * to 'notApplicable'. The disposition field on the requirement distinguishes false positives from
940
+ * genuinely not-applicable findings. - 'riskAdjustment': impact score adjusted based on
941
+ * environmental context (FedRAMP Risk Adjustment); does not change pass/fail status, only impact
942
+ * via the impact field. - 'operationalRequirement': deviation required by operational constraints
943
+ * (FedRAMP Operational Requirement); the finding cannot be remediated because the system requires
944
+ * the affected functionality. Remains an open risk. Migration note: 'exception' was removed in
945
+ * v3.1.0 — use 'waiver' with status 'notApplicable' instead.
902
946
  */
903
947
  export declare enum OverrideType {
904
948
  Attestation = "attestation",
@@ -1470,11 +1514,16 @@ export interface Component {
1470
1514
  inputOverrides?: InputOverride[];
1471
1515
  /**
1472
1516
  * Cryptographic integrity of this component's underlying artifact — model weights or
1473
- * shards, dataset archive, container image, or package bytes. An array supports
1474
- * multi-file/sharded artifacts. This is the single, generic home for artifact/subject
1475
- * integrity across all component types (it replaced the former per-type Container_Image
1476
- * digest and Artifact checksum fields). Distinct from BOM-document integrity (Bom.hashes[])
1477
- * and from the document tamper-evidence Integrity type.
1517
+ * shards, dataset archive, container image, or package bytes.
1518
+ *
1519
+ * An array supports multi-file/sharded artifacts.
1520
+ *
1521
+ * This is the single, generic home for artifact/subject integrity across all component
1522
+ * types (it replaced the former per-type Container_Image digest and Artifact checksum
1523
+ * fields).
1524
+ *
1525
+ * Distinct from BOM-document integrity (Bom.hashes[]) and from the document tamper-evidence
1526
+ * Integrity type.
1478
1527
  */
1479
1528
  integrity?: Checksum[];
1480
1529
  /**
@@ -2219,10 +2268,13 @@ export interface Tool {
2219
2268
  * The named format of the source data, when it follows a recognized format specification
2220
2269
  * with its own identity: an interchange format emitted by many tools ('SARIF', 'XCCDF',
2221
2270
  * 'OSCAL') or one of several named output formats a single tool produces ('FVDL',
2222
- * 'exec-json', 'FPF'). Never a serialization structure — 'JSON', 'XML', and 'CSV' are
2223
- * encodings, not formats. Omit for a tool's native output: an absent format means the
2224
- * tool's own shape, and data arriving as a named format is converted by that format's
2225
- * converter, which sets this field alongside the producing tool's name.
2271
+ * 'exec-json', 'FPF').
2272
+ *
2273
+ * Never a serialization structure — 'JSON', 'XML', and 'CSV' are encodings, not formats.
2274
+ *
2275
+ * Omit for a tool's native output: an absent format means the tool's own shape, and data
2276
+ * arriving as a named format is converted by that format's converter, which sets this field
2277
+ * alongside the producing tool's name.
2226
2278
  */
2227
2279
  format?: string;
2228
2280
  /**
@@ -2356,10 +2408,14 @@ export interface BaselineRequirement {
2356
2408
  [key: string]: any;
2357
2409
  };
2358
2410
  /**
2359
- * Whether the requirement is mandatory within its baseline. Distinct from severity (risk
2360
- * weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
2361
- * FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
2362
- * memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
2411
+ * Whether the requirement is mandatory within its baseline.
2412
+ *
2413
+ * Distinct from severity (risk weight) and status (lifecycle state).
2414
+ *
2415
+ * Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop, FedRAMP 20x inline 'Optional:'
2416
+ * markers, CMMC sublevel rows, and CIS Implementation Group memberships (IG1/IG2/IG3 may
2417
+ * carry richer semantics; layer those onto props[]/tags{}).
2418
+ *
2363
2419
  * Optional: when omitted, consumers should treat the requirement as 'required' by
2364
2420
  * convention.
2365
2421
  */
@@ -2373,11 +2429,15 @@ export interface BaselineRequirement {
2373
2429
  code?: string;
2374
2430
  /**
2375
2431
  * Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
2376
- * categories. 'policy' = an authored governance statement; 'procedure' = a documented
2377
- * process; 'technical' = an enforced technical configuration; 'management' = a
2432
+ * categories.
2433
+ *
2434
+ * 'policy' = an authored governance statement; 'procedure' = a documented process;
2435
+ * 'technical' = an enforced technical configuration; 'management' = a
2378
2436
  * programmatic/management activity; 'operational' = a recurring operational activity (e.g.
2379
- * AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
2380
- * family/id but should not assume a default.
2437
+ * AT, IR, MA families).
2438
+ *
2439
+ * Optional: when omitted, consumers may infer heuristically from family/id but should not
2440
+ * assume a default.
2381
2441
  */
2382
2442
  controlType?: ControlType;
2383
2443
  /**
@@ -2400,12 +2460,17 @@ export interface BaselineRequirement {
2400
2460
  */
2401
2461
  title?: string;
2402
2462
  /**
2403
- * How this requirement is intended to be verified. Disambiguates the two cases that null
2404
- * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
2405
- * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
2406
- * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
2407
- * runs without operator action; 'hybrid' = part automated, part manual. Optional: when
2408
- * omitted, consumers should not infer a default.
2463
+ * How this requirement is intended to be verified.
2464
+ *
2465
+ * Disambiguates the two cases that null 'code' overloads: 'manual-by-design' (the
2466
+ * requirement is statement-form and not amenable to automation, e.g. FedRAMP 20x KSIs);
2467
+ * 'manual-pending-automation' (automation could exist but does not yet, e.g. a STIG rule
2468
+ * lacking a fix).
2469
+ *
2470
+ * 'automated' = a check exists and runs without operator action; 'hybrid' = part automated,
2471
+ * part manual.
2472
+ *
2473
+ * Optional: when omitted, consumers should not infer a default.
2409
2474
  */
2410
2475
  verificationMethod?: VerificationMethodEnum;
2411
2476
  [property: string]: any;
@@ -3593,24 +3658,29 @@ export interface HDFAmendments {
3593
3658
  * branches gated on 'type': when type is 'operationalRequirement', neither 'status' nor 'impact'
3594
3659
  * may be set — the override records accepted risk without changing the finding
3595
3660
  * (documentation-only). For all other types, at least one of 'status' or 'impact' must be set. This
3596
- * rule aligns with: (1) OSCAL Assessment Results — finding.target.status and
3661
+ * rule aligns with: - OSCAL Assessment Results — finding.target.status and
3597
3662
  * finding.associated-risk[].facet[] are separate axes
3598
- * (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2) FedRAMP
3663
+ * (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/) - FedRAMP
3599
3664
  * deviation request types — Risk Adjustment changes impact only, Operational Requirement documents
3600
3665
  * acceptance only, False Positive changes status
3601
- * (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3) NIST SP
3602
- * 800-37 RMF — risk response (accept/mitigate/transfer) is a separate step from control assessment
3603
- * status (https://csrc.nist.gov/pubs/sp/800/37/r2/final).
3666
+ * (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/) - NIST SP 800-37
3667
+ * RMF — risk response (accept/mitigate/transfer) is a separate step from control assessment status
3668
+ * (https://csrc.nist.gov/pubs/sp/800/37/r2/final).
3604
3669
  */
3605
3670
  export interface StandaloneOverride {
3606
3671
  /**
3607
3672
  * Software packages this amendment is scoped to, distinct from componentRef (which scopes
3608
- * to an HDF-internal Component by UUID). Use when the source amendment format references
3609
- * packages by purl/cpe/name+version — e.g., VEX `affects[]` / `products[]`, OSCAL POA&M
3610
- * `subjects[]`, FedRAMP component-aware amendments. Symmetric with
3611
- * Evaluated_Requirement.affectedPackages, which scopes findings to the same package
3612
- * vocabulary. When omitted, the amendment applies system-wide (or only to componentRef when
3613
- * that is set).
3673
+ * to an HDF-internal Component by UUID).
3674
+ *
3675
+ * Use when the source amendment format references packages by purl/cpe/name+version — e.g.,
3676
+ * VEX `affects[]` / `products[]`, OSCAL POA&M `subjects[]`, FedRAMP component-aware
3677
+ * amendments.
3678
+ *
3679
+ * Symmetric with Evaluated_Requirement.affectedPackages, which scopes findings to the same
3680
+ * package vocabulary.
3681
+ *
3682
+ * When omitted, the amendment applies system-wide (or only to componentRef when that is
3683
+ * set).
3614
3684
  */
3615
3685
  affectedPackages?: AffectedPackage[];
3616
3686
  /**
@@ -4004,10 +4074,12 @@ export interface HDFRequirementChangeEvent {
4004
4074
  /**
4005
4075
  * The effectiveChecksum of the entity state this event supersedes, forming a per-key hash
4006
4076
  * chain: a mismatch or gap against stored state is detectable, letting a consumer mark the
4007
- * key unverified instead of serving stale posture. Null at chain start (no prior state,
4008
- * e.g. a new entity or the first event after a seed). The chain provides tamper/gap
4009
- * evidence given a trusted head; completeness is anchored out-of-band by periodic
4010
- * re-centering rescans.
4077
+ * key unverified instead of serving stale posture.
4078
+ *
4079
+ * Null at chain start (no prior state, e.g. a new entity or the first event after a seed).
4080
+ *
4081
+ * The chain provides tamper/gap evidence given a trusted head; completeness is anchored
4082
+ * out-of-band by periodic re-centering rescans.
4011
4083
  */
4012
4084
  priorChecksum: any;
4013
4085
  /**
package/dist/ts/hdf.js CHANGED
@@ -1,11 +1,12 @@
1
1
  /**
2
- * The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
3
- * 'system' for deterministic non-interactive automation (CI jobs, cron, scanners), 'agent'
4
- * for an AI/LLM agent acting with autonomy — kept distinct from 'system' so auditors can
5
- * apply AI-specific scrutiny (e.g. 'an LLM proposed this' vs a deterministic job) and
6
- * satisfy AI-source disclosure under frameworks like the EU AI Act and NIST AI RMF,
7
- * 'simple' for basic string identifiers without additional classification, or 'other' for
8
- * custom identity systems.
2
+ * The type of identifier.
3
+ *
4
+ * Use 'email' for email addresses, 'username' for user accounts, 'system' for deterministic
5
+ * non-interactive automation (CI jobs, cron, scanners), 'agent' for an AI/LLM agent acting
6
+ * with autonomy — kept distinct from 'system' so auditors can apply AI-specific scrutiny
7
+ * (e.g. 'an LLM proposed this' vs a deterministic job) and satisfy AI-source disclosure
8
+ * under frameworks like the EU AI Act and NIST AI RMF, 'simple' for basic string
9
+ * identifiers without additional classification, or 'other' for custom identity systems.
9
10
  */
10
11
  export var IdentityType;
11
12
  (function (IdentityType) {
@@ -74,10 +75,14 @@ export var Ecosystem;
74
75
  Ecosystem["RPM"] = "rpm";
75
76
  })(Ecosystem || (Ecosystem = {}));
76
77
  /**
77
- * Whether the requirement is mandatory within its baseline. Distinct from severity (risk
78
- * weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
79
- * FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
80
- * memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
78
+ * Whether the requirement is mandatory within its baseline.
79
+ *
80
+ * Distinct from severity (risk weight) and status (lifecycle state).
81
+ *
82
+ * Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop, FedRAMP 20x inline 'Optional:'
83
+ * markers, CMMC sublevel rows, and CIS Implementation Group memberships (IG1/IG2/IG3 may
84
+ * carry richer semantics; layer those onto props[]/tags{}).
85
+ *
81
86
  * Optional: when omitted, consumers should treat the requirement as 'required' by
82
87
  * convention.
83
88
  */
@@ -89,11 +94,15 @@ export var Applicability;
89
94
  })(Applicability || (Applicability = {}));
90
95
  /**
91
96
  * Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
92
- * categories. 'policy' = an authored governance statement; 'procedure' = a documented
93
- * process; 'technical' = an enforced technical configuration; 'management' = a
97
+ * categories.
98
+ *
99
+ * 'policy' = an authored governance statement; 'procedure' = a documented process;
100
+ * 'technical' = an enforced technical configuration; 'management' = a
94
101
  * programmatic/management activity; 'operational' = a recurring operational activity (e.g.
95
- * AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
96
- * family/id but should not assume a default.
102
+ * AT, IR, MA families).
103
+ *
104
+ * Optional: when omitted, consumers may infer heuristically from family/id but should not
105
+ * assume a default.
97
106
  */
98
107
  export var ControlType;
99
108
  (function (ControlType) {
@@ -128,19 +137,19 @@ export var Version;
128
137
  Version["The40"] = "4.0";
129
138
  })(Version || (Version = {}));
130
139
  /**
131
- * The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk accepted
132
- * by Authorizing Official. 'attestation': manually verified by assessor. 'poam': remediation
133
- * tracked (no status change). 'inherited': control provided by another component or system.
134
- * 'falsePositive': scanner incorrectly identified a finding — for compliance scans (STIG, CIS), the
135
- * check actually passes, so status is typically set to 'passed'; for vulnerability scans (CVE,
136
- * SCA), the flagged vulnerability does not apply to this system, so status is typically set to
137
- * 'notApplicable'. The disposition field on the requirement distinguishes false positives from
138
- * genuinely not-applicable findings. 'riskAdjustment': impact score adjusted based on environmental
139
- * context (FedRAMP Risk Adjustment); does not change pass/fail status, only impact via the impact
140
- * field. 'operationalRequirement': deviation required by operational constraints (FedRAMP
141
- * Operational Requirement); the finding cannot be remediated because the system requires the
142
- * affected functionality. Remains an open risk. Migration note: 'exception' was removed in v3.1.0 —
143
- * use 'waiver' with status 'notApplicable' instead.
140
+ * The type of amendment, aligned with FedRAMP deviation request categories. - 'waiver': risk
141
+ * accepted by Authorizing Official. - 'attestation': manually verified by assessor. - 'poam':
142
+ * remediation tracked (no status change). - 'inherited': control provided by another component or
143
+ * system. - 'falsePositive': scanner incorrectly identified a finding — for compliance scans (STIG,
144
+ * CIS), the check actually passes, so status is typically set to 'passed'; for vulnerability scans
145
+ * (CVE, SCA), the flagged vulnerability does not apply to this system, so status is typically set
146
+ * to 'notApplicable'. The disposition field on the requirement distinguishes false positives from
147
+ * genuinely not-applicable findings. - 'riskAdjustment': impact score adjusted based on
148
+ * environmental context (FedRAMP Risk Adjustment); does not change pass/fail status, only impact
149
+ * via the impact field. - 'operationalRequirement': deviation required by operational constraints
150
+ * (FedRAMP Operational Requirement); the finding cannot be remediated because the system requires
151
+ * the affected functionality. Remains an open risk. Migration note: 'exception' was removed in
152
+ * v3.1.0 — use 'waiver' with status 'notApplicable' instead.
144
153
  */
145
154
  export var OverrideType;
146
155
  (function (OverrideType) {