@mitre/hdf-schema 3.1.0-rc.1 → 3.2.0
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 +8 -1
- package/dist/go/go.mod +2 -2
- package/dist/go/hdf.go +172 -76
- package/dist/helpers.d.ts +4 -0
- package/dist/index.js +21 -21
- package/dist/schemas/hdf-amendments.schema.json +134 -35
- package/dist/schemas/hdf-baseline.schema.json +139 -40
- package/dist/schemas/hdf-comparison.schema.json +190 -91
- package/dist/schemas/hdf-evidence-package.schema.json +133 -34
- package/dist/schemas/hdf-plan.schema.json +139 -40
- package/dist/schemas/hdf-results.schema.json +169 -70
- package/dist/schemas/hdf-system.schema.json +148 -49
- package/dist/ts/hdf-baseline.d.ts +79 -2
- package/dist/ts/hdf-baseline.js +52 -0
- package/dist/ts/hdf-baseline.ts +82 -2
- package/dist/ts/hdf-results.d.ts +79 -2
- package/dist/ts/hdf-results.js +52 -0
- package/dist/ts/hdf-results.ts +82 -2
- package/package.json +2 -2
package/dist/ts/hdf-baseline.js
CHANGED
|
@@ -42,6 +42,36 @@ export var HashAlgorithm;
|
|
|
42
42
|
HashAlgorithm["Sha384"] = "sha384";
|
|
43
43
|
HashAlgorithm["Sha512"] = "sha512";
|
|
44
44
|
})(HashAlgorithm || (HashAlgorithm = {}));
|
|
45
|
+
/**
|
|
46
|
+
* Whether the requirement is mandatory within its baseline. Distinct from severity (risk
|
|
47
|
+
* weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
|
|
48
|
+
* FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
|
|
49
|
+
* memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
|
|
50
|
+
* Optional: when omitted, consumers should treat the requirement as 'required' by
|
|
51
|
+
* convention.
|
|
52
|
+
*/
|
|
53
|
+
export var Applicability;
|
|
54
|
+
(function (Applicability) {
|
|
55
|
+
Applicability["Advisory"] = "advisory";
|
|
56
|
+
Applicability["Optional"] = "optional";
|
|
57
|
+
Applicability["Required"] = "required";
|
|
58
|
+
})(Applicability || (Applicability = {}));
|
|
59
|
+
/**
|
|
60
|
+
* Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
|
|
61
|
+
* categories. 'policy' = an authored governance statement; 'procedure' = a documented
|
|
62
|
+
* process; 'technical' = an enforced technical configuration; 'management' = a
|
|
63
|
+
* programmatic/management activity; 'operational' = a recurring operational activity (e.g.
|
|
64
|
+
* AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
|
|
65
|
+
* family/id but should not assume a default.
|
|
66
|
+
*/
|
|
67
|
+
export var ControlType;
|
|
68
|
+
(function (ControlType) {
|
|
69
|
+
ControlType["Management"] = "management";
|
|
70
|
+
ControlType["Operational"] = "operational";
|
|
71
|
+
ControlType["Policy"] = "policy";
|
|
72
|
+
ControlType["Procedure"] = "procedure";
|
|
73
|
+
ControlType["Technical"] = "technical";
|
|
74
|
+
})(ControlType || (ControlType = {}));
|
|
45
75
|
/**
|
|
46
76
|
* Explicit severity rating. Typically derived from impact score but provided explicitly for
|
|
47
77
|
* clarity.
|
|
@@ -56,3 +86,25 @@ export var Severity;
|
|
|
56
86
|
Severity["Low"] = "low";
|
|
57
87
|
Severity["Medium"] = "medium";
|
|
58
88
|
})(Severity || (Severity = {}));
|
|
89
|
+
/**
|
|
90
|
+
* How this requirement is intended to be verified. Disambiguates the two cases that null
|
|
91
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
92
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
93
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
94
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Optional: when
|
|
95
|
+
* omitted, consumers should not infer a default.
|
|
96
|
+
*
|
|
97
|
+
* How a requirement is intended to be verified. Disambiguates the two cases that null
|
|
98
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
99
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
100
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
101
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
|
|
102
|
+
* disambiguate from the unrelated Verification_Method DID-context struct.
|
|
103
|
+
*/
|
|
104
|
+
export var VerificationMethodEnum;
|
|
105
|
+
(function (VerificationMethodEnum) {
|
|
106
|
+
VerificationMethodEnum["Automated"] = "automated";
|
|
107
|
+
VerificationMethodEnum["Hybrid"] = "hybrid";
|
|
108
|
+
VerificationMethodEnum["ManualByDesign"] = "manual-by-design";
|
|
109
|
+
VerificationMethodEnum["ManualPendingAutomation"] = "manual-pending-automation";
|
|
110
|
+
})(VerificationMethodEnum || (VerificationMethodEnum = {}));
|
package/dist/ts/hdf-baseline.ts
CHANGED
|
@@ -378,12 +378,31 @@ export interface BaselineRequirement {
|
|
|
378
378
|
* A set of tags - usually metadata like CCI, STIG ID, severity.
|
|
379
379
|
*/
|
|
380
380
|
tags: { [key: string]: any };
|
|
381
|
+
/**
|
|
382
|
+
* Whether the requirement is mandatory within its baseline. Distinct from severity (risk
|
|
383
|
+
* weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
|
|
384
|
+
* FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
|
|
385
|
+
* memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
|
|
386
|
+
* Optional: when omitted, consumers should treat the requirement as 'required' by
|
|
387
|
+
* convention.
|
|
388
|
+
*/
|
|
389
|
+
applicability?: Applicability;
|
|
381
390
|
/**
|
|
382
391
|
* The raw source code of the requirement. Set to null for manual-only requirements or
|
|
383
|
-
* requirements not yet implemented
|
|
384
|
-
*
|
|
392
|
+
* requirements not yet implemented; use verificationMethod to disambiguate manual-by-design
|
|
393
|
+
* from manual-pending-automation. Note that if this is an overlay, it does not include the
|
|
394
|
+
* underlying source code.
|
|
385
395
|
*/
|
|
386
396
|
code?: string;
|
|
397
|
+
/**
|
|
398
|
+
* Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
|
|
399
|
+
* categories. 'policy' = an authored governance statement; 'procedure' = a documented
|
|
400
|
+
* process; 'technical' = an enforced technical configuration; 'management' = a
|
|
401
|
+
* programmatic/management activity; 'operational' = a recurring operational activity (e.g.
|
|
402
|
+
* AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
|
|
403
|
+
* family/id but should not assume a default.
|
|
404
|
+
*/
|
|
405
|
+
controlType?: ControlType;
|
|
387
406
|
/**
|
|
388
407
|
* The set of references to external documents.
|
|
389
408
|
*/
|
|
@@ -396,9 +415,48 @@ export interface BaselineRequirement {
|
|
|
396
415
|
* The title - is nullable.
|
|
397
416
|
*/
|
|
398
417
|
title?: string;
|
|
418
|
+
/**
|
|
419
|
+
* How this requirement is intended to be verified. Disambiguates the two cases that null
|
|
420
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
421
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
422
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
423
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Optional: when
|
|
424
|
+
* omitted, consumers should not infer a default.
|
|
425
|
+
*/
|
|
426
|
+
verificationMethod?: VerificationMethodEnum;
|
|
399
427
|
[property: string]: any;
|
|
400
428
|
}
|
|
401
429
|
|
|
430
|
+
/**
|
|
431
|
+
* Whether the requirement is mandatory within its baseline. Distinct from severity (risk
|
|
432
|
+
* weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
|
|
433
|
+
* FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
|
|
434
|
+
* memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
|
|
435
|
+
* Optional: when omitted, consumers should treat the requirement as 'required' by
|
|
436
|
+
* convention.
|
|
437
|
+
*/
|
|
438
|
+
export enum Applicability {
|
|
439
|
+
Advisory = "advisory",
|
|
440
|
+
Optional = "optional",
|
|
441
|
+
Required = "required",
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
|
|
446
|
+
* categories. 'policy' = an authored governance statement; 'procedure' = a documented
|
|
447
|
+
* process; 'technical' = an enforced technical configuration; 'management' = a
|
|
448
|
+
* programmatic/management activity; 'operational' = a recurring operational activity (e.g.
|
|
449
|
+
* AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
|
|
450
|
+
* family/id but should not assume a default.
|
|
451
|
+
*/
|
|
452
|
+
export enum ControlType {
|
|
453
|
+
Management = "management",
|
|
454
|
+
Operational = "operational",
|
|
455
|
+
Policy = "policy",
|
|
456
|
+
Procedure = "procedure",
|
|
457
|
+
Technical = "technical",
|
|
458
|
+
}
|
|
459
|
+
|
|
402
460
|
export interface Description {
|
|
403
461
|
/**
|
|
404
462
|
* The description text content.
|
|
@@ -459,6 +517,28 @@ export interface SourceLocation {
|
|
|
459
517
|
[property: string]: any;
|
|
460
518
|
}
|
|
461
519
|
|
|
520
|
+
/**
|
|
521
|
+
* How this requirement is intended to be verified. Disambiguates the two cases that null
|
|
522
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
523
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
524
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
525
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Optional: when
|
|
526
|
+
* omitted, consumers should not infer a default.
|
|
527
|
+
*
|
|
528
|
+
* How a requirement is intended to be verified. Disambiguates the two cases that null
|
|
529
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
530
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
531
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
532
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
|
|
533
|
+
* disambiguate from the unrelated Verification_Method DID-context struct.
|
|
534
|
+
*/
|
|
535
|
+
export enum VerificationMethodEnum {
|
|
536
|
+
Automated = "automated",
|
|
537
|
+
Hybrid = "hybrid",
|
|
538
|
+
ManualByDesign = "manual-by-design",
|
|
539
|
+
ManualPendingAutomation = "manual-pending-automation",
|
|
540
|
+
}
|
|
541
|
+
|
|
462
542
|
/**
|
|
463
543
|
* A supported platform target. Example: the platform name being 'ubuntu'.
|
|
464
544
|
*/
|
package/dist/ts/hdf-results.d.ts
CHANGED
|
@@ -480,12 +480,31 @@ export interface EvaluatedRequirement {
|
|
|
480
480
|
tags: {
|
|
481
481
|
[key: string]: any;
|
|
482
482
|
};
|
|
483
|
+
/**
|
|
484
|
+
* Whether the requirement is mandatory within its baseline. Distinct from severity (risk
|
|
485
|
+
* weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
|
|
486
|
+
* FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
|
|
487
|
+
* memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
|
|
488
|
+
* Optional: when omitted, consumers should treat the requirement as 'required' by
|
|
489
|
+
* convention.
|
|
490
|
+
*/
|
|
491
|
+
applicability?: Applicability;
|
|
483
492
|
/**
|
|
484
493
|
* The raw source code of the requirement. Set to null for manual-only requirements or
|
|
485
|
-
* requirements not yet implemented
|
|
486
|
-
*
|
|
494
|
+
* requirements not yet implemented; use verificationMethod to disambiguate manual-by-design
|
|
495
|
+
* from manual-pending-automation. Note that if this is an overlay, it does not include the
|
|
496
|
+
* underlying source code.
|
|
487
497
|
*/
|
|
488
498
|
code?: string;
|
|
499
|
+
/**
|
|
500
|
+
* Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
|
|
501
|
+
* categories. 'policy' = an authored governance statement; 'procedure' = a documented
|
|
502
|
+
* process; 'technical' = an enforced technical configuration; 'management' = a
|
|
503
|
+
* programmatic/management activity; 'operational' = a recurring operational activity (e.g.
|
|
504
|
+
* AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
|
|
505
|
+
* family/id but should not assume a default.
|
|
506
|
+
*/
|
|
507
|
+
controlType?: ControlType;
|
|
489
508
|
/**
|
|
490
509
|
* The set of references to external documents.
|
|
491
510
|
*/
|
|
@@ -494,8 +513,45 @@ export interface EvaluatedRequirement {
|
|
|
494
513
|
* The title - is nullable.
|
|
495
514
|
*/
|
|
496
515
|
title?: string;
|
|
516
|
+
/**
|
|
517
|
+
* How this requirement is intended to be verified. Disambiguates the two cases that null
|
|
518
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
519
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
520
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
521
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Optional: when
|
|
522
|
+
* omitted, consumers should not infer a default.
|
|
523
|
+
*/
|
|
524
|
+
verificationMethod?: VerificationMethodEnum;
|
|
497
525
|
[property: string]: any;
|
|
498
526
|
}
|
|
527
|
+
/**
|
|
528
|
+
* Whether the requirement is mandatory within its baseline. Distinct from severity (risk
|
|
529
|
+
* weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
|
|
530
|
+
* FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
|
|
531
|
+
* memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
|
|
532
|
+
* Optional: when omitted, consumers should treat the requirement as 'required' by
|
|
533
|
+
* convention.
|
|
534
|
+
*/
|
|
535
|
+
export declare enum Applicability {
|
|
536
|
+
Advisory = "advisory",
|
|
537
|
+
Optional = "optional",
|
|
538
|
+
Required = "required"
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
|
|
542
|
+
* categories. 'policy' = an authored governance statement; 'procedure' = a documented
|
|
543
|
+
* process; 'technical' = an enforced technical configuration; 'management' = a
|
|
544
|
+
* programmatic/management activity; 'operational' = a recurring operational activity (e.g.
|
|
545
|
+
* AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
|
|
546
|
+
* family/id but should not assume a default.
|
|
547
|
+
*/
|
|
548
|
+
export declare enum ControlType {
|
|
549
|
+
Management = "management",
|
|
550
|
+
Operational = "operational",
|
|
551
|
+
Policy = "policy",
|
|
552
|
+
Procedure = "procedure",
|
|
553
|
+
Technical = "technical"
|
|
554
|
+
}
|
|
499
555
|
export interface Description {
|
|
500
556
|
/**
|
|
501
557
|
* The description text content.
|
|
@@ -1007,6 +1063,27 @@ export interface ImpactOverride {
|
|
|
1007
1063
|
value: number;
|
|
1008
1064
|
[property: string]: any;
|
|
1009
1065
|
}
|
|
1066
|
+
/**
|
|
1067
|
+
* How this requirement is intended to be verified. Disambiguates the two cases that null
|
|
1068
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
1069
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
1070
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
1071
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Optional: when
|
|
1072
|
+
* omitted, consumers should not infer a default.
|
|
1073
|
+
*
|
|
1074
|
+
* How a requirement is intended to be verified. Disambiguates the two cases that null
|
|
1075
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
1076
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
1077
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
1078
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
|
|
1079
|
+
* disambiguate from the unrelated Verification_Method DID-context struct.
|
|
1080
|
+
*/
|
|
1081
|
+
export declare enum VerificationMethodEnum {
|
|
1082
|
+
Automated = "automated",
|
|
1083
|
+
Hybrid = "hybrid",
|
|
1084
|
+
ManualByDesign = "manual-by-design",
|
|
1085
|
+
ManualPendingAutomation = "manual-pending-automation"
|
|
1086
|
+
}
|
|
1010
1087
|
/**
|
|
1011
1088
|
* A supported platform target. Example: the platform name being 'ubuntu'.
|
|
1012
1089
|
*/
|
package/dist/ts/hdf-results.js
CHANGED
|
@@ -42,6 +42,36 @@ export var HashAlgorithm;
|
|
|
42
42
|
HashAlgorithm["Sha384"] = "sha384";
|
|
43
43
|
HashAlgorithm["Sha512"] = "sha512";
|
|
44
44
|
})(HashAlgorithm || (HashAlgorithm = {}));
|
|
45
|
+
/**
|
|
46
|
+
* Whether the requirement is mandatory within its baseline. Distinct from severity (risk
|
|
47
|
+
* weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
|
|
48
|
+
* FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
|
|
49
|
+
* memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
|
|
50
|
+
* Optional: when omitted, consumers should treat the requirement as 'required' by
|
|
51
|
+
* convention.
|
|
52
|
+
*/
|
|
53
|
+
export var Applicability;
|
|
54
|
+
(function (Applicability) {
|
|
55
|
+
Applicability["Advisory"] = "advisory";
|
|
56
|
+
Applicability["Optional"] = "optional";
|
|
57
|
+
Applicability["Required"] = "required";
|
|
58
|
+
})(Applicability || (Applicability = {}));
|
|
59
|
+
/**
|
|
60
|
+
* Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
|
|
61
|
+
* categories. 'policy' = an authored governance statement; 'procedure' = a documented
|
|
62
|
+
* process; 'technical' = an enforced technical configuration; 'management' = a
|
|
63
|
+
* programmatic/management activity; 'operational' = a recurring operational activity (e.g.
|
|
64
|
+
* AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
|
|
65
|
+
* family/id but should not assume a default.
|
|
66
|
+
*/
|
|
67
|
+
export var ControlType;
|
|
68
|
+
(function (ControlType) {
|
|
69
|
+
ControlType["Management"] = "management";
|
|
70
|
+
ControlType["Operational"] = "operational";
|
|
71
|
+
ControlType["Policy"] = "policy";
|
|
72
|
+
ControlType["Procedure"] = "procedure";
|
|
73
|
+
ControlType["Technical"] = "technical";
|
|
74
|
+
})(ControlType || (ControlType = {}));
|
|
45
75
|
/**
|
|
46
76
|
* The type of the most recent non-expired override or POAM governing this requirement.
|
|
47
77
|
* Indicates why the requirement is in its current state (e.g., waiver, falsePositive,
|
|
@@ -157,6 +187,28 @@ export var Severity;
|
|
|
157
187
|
Severity["Low"] = "low";
|
|
158
188
|
Severity["Medium"] = "medium";
|
|
159
189
|
})(Severity || (Severity = {}));
|
|
190
|
+
/**
|
|
191
|
+
* How this requirement is intended to be verified. Disambiguates the two cases that null
|
|
192
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
193
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
194
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
195
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Optional: when
|
|
196
|
+
* omitted, consumers should not infer a default.
|
|
197
|
+
*
|
|
198
|
+
* How a requirement is intended to be verified. Disambiguates the two cases that null
|
|
199
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
200
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
201
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
202
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
|
|
203
|
+
* disambiguate from the unrelated Verification_Method DID-context struct.
|
|
204
|
+
*/
|
|
205
|
+
export var VerificationMethodEnum;
|
|
206
|
+
(function (VerificationMethodEnum) {
|
|
207
|
+
VerificationMethodEnum["Automated"] = "automated";
|
|
208
|
+
VerificationMethodEnum["Hybrid"] = "hybrid";
|
|
209
|
+
VerificationMethodEnum["ManualByDesign"] = "manual-by-design";
|
|
210
|
+
VerificationMethodEnum["ManualPendingAutomation"] = "manual-pending-automation";
|
|
211
|
+
})(VerificationMethodEnum || (VerificationMethodEnum = {}));
|
|
160
212
|
export var CloudProvider;
|
|
161
213
|
(function (CloudProvider) {
|
|
162
214
|
CloudProvider["Aws"] = "aws";
|
package/dist/ts/hdf-results.ts
CHANGED
|
@@ -483,12 +483,31 @@ export interface EvaluatedRequirement {
|
|
|
483
483
|
* A set of tags - usually metadata like CCI, STIG ID, severity.
|
|
484
484
|
*/
|
|
485
485
|
tags: { [key: string]: any };
|
|
486
|
+
/**
|
|
487
|
+
* Whether the requirement is mandatory within its baseline. Distinct from severity (risk
|
|
488
|
+
* weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
|
|
489
|
+
* FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
|
|
490
|
+
* memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
|
|
491
|
+
* Optional: when omitted, consumers should treat the requirement as 'required' by
|
|
492
|
+
* convention.
|
|
493
|
+
*/
|
|
494
|
+
applicability?: Applicability;
|
|
486
495
|
/**
|
|
487
496
|
* The raw source code of the requirement. Set to null for manual-only requirements or
|
|
488
|
-
* requirements not yet implemented
|
|
489
|
-
*
|
|
497
|
+
* requirements not yet implemented; use verificationMethod to disambiguate manual-by-design
|
|
498
|
+
* from manual-pending-automation. Note that if this is an overlay, it does not include the
|
|
499
|
+
* underlying source code.
|
|
490
500
|
*/
|
|
491
501
|
code?: string;
|
|
502
|
+
/**
|
|
503
|
+
* Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
|
|
504
|
+
* categories. 'policy' = an authored governance statement; 'procedure' = a documented
|
|
505
|
+
* process; 'technical' = an enforced technical configuration; 'management' = a
|
|
506
|
+
* programmatic/management activity; 'operational' = a recurring operational activity (e.g.
|
|
507
|
+
* AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
|
|
508
|
+
* family/id but should not assume a default.
|
|
509
|
+
*/
|
|
510
|
+
controlType?: ControlType;
|
|
492
511
|
/**
|
|
493
512
|
* The set of references to external documents.
|
|
494
513
|
*/
|
|
@@ -497,9 +516,48 @@ export interface EvaluatedRequirement {
|
|
|
497
516
|
* The title - is nullable.
|
|
498
517
|
*/
|
|
499
518
|
title?: string;
|
|
519
|
+
/**
|
|
520
|
+
* How this requirement is intended to be verified. Disambiguates the two cases that null
|
|
521
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
522
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
523
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
524
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Optional: when
|
|
525
|
+
* omitted, consumers should not infer a default.
|
|
526
|
+
*/
|
|
527
|
+
verificationMethod?: VerificationMethodEnum;
|
|
500
528
|
[property: string]: any;
|
|
501
529
|
}
|
|
502
530
|
|
|
531
|
+
/**
|
|
532
|
+
* Whether the requirement is mandatory within its baseline. Distinct from severity (risk
|
|
533
|
+
* weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
|
|
534
|
+
* FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
|
|
535
|
+
* memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
|
|
536
|
+
* Optional: when omitted, consumers should treat the requirement as 'required' by
|
|
537
|
+
* convention.
|
|
538
|
+
*/
|
|
539
|
+
export enum Applicability {
|
|
540
|
+
Advisory = "advisory",
|
|
541
|
+
Optional = "optional",
|
|
542
|
+
Required = "required",
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
|
|
547
|
+
* categories. 'policy' = an authored governance statement; 'procedure' = a documented
|
|
548
|
+
* process; 'technical' = an enforced technical configuration; 'management' = a
|
|
549
|
+
* programmatic/management activity; 'operational' = a recurring operational activity (e.g.
|
|
550
|
+
* AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
|
|
551
|
+
* family/id but should not assume a default.
|
|
552
|
+
*/
|
|
553
|
+
export enum ControlType {
|
|
554
|
+
Management = "management",
|
|
555
|
+
Operational = "operational",
|
|
556
|
+
Policy = "policy",
|
|
557
|
+
Procedure = "procedure",
|
|
558
|
+
Technical = "technical",
|
|
559
|
+
}
|
|
560
|
+
|
|
503
561
|
export interface Description {
|
|
504
562
|
/**
|
|
505
563
|
* The description text content.
|
|
@@ -1026,6 +1084,28 @@ export interface ImpactOverride {
|
|
|
1026
1084
|
[property: string]: any;
|
|
1027
1085
|
}
|
|
1028
1086
|
|
|
1087
|
+
/**
|
|
1088
|
+
* How this requirement is intended to be verified. Disambiguates the two cases that null
|
|
1089
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
1090
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
1091
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
1092
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Optional: when
|
|
1093
|
+
* omitted, consumers should not infer a default.
|
|
1094
|
+
*
|
|
1095
|
+
* How a requirement is intended to be verified. Disambiguates the two cases that null
|
|
1096
|
+
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
1097
|
+
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
1098
|
+
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
1099
|
+
* runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
|
|
1100
|
+
* disambiguate from the unrelated Verification_Method DID-context struct.
|
|
1101
|
+
*/
|
|
1102
|
+
export enum VerificationMethodEnum {
|
|
1103
|
+
Automated = "automated",
|
|
1104
|
+
Hybrid = "hybrid",
|
|
1105
|
+
ManualByDesign = "manual-by-design",
|
|
1106
|
+
ManualPendingAutomation = "manual-pending-automation",
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1029
1109
|
/**
|
|
1030
1110
|
* A supported platform target. Example: the platform name being 'ubuntu'.
|
|
1031
1111
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mitre/hdf-schema",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "JSON schemas and multi-language type definitions for Heimdall Data Format (HDF)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"ajv": "^8.17.0",
|
|
61
61
|
"ajv-formats": "^3.0.0",
|
|
62
|
-
"@mitre/hdf-utilities": "^3.
|
|
62
|
+
"@mitre/hdf-utilities": "^3.2.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@hyperjump/json-schema": "^1.17.2",
|