@mitre/hdf-schema 3.1.0 → 3.3.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 +20 -14
- package/dist/go/go.mod +2 -2
- package/dist/go/hdf.go +570 -210
- package/dist/helpers.d.ts +5 -1
- package/dist/index.d.ts +27 -52
- package/dist/index.js +30 -48
- package/dist/schemas/hdf-amendments.schema.json +565 -45
- package/dist/schemas/hdf-baseline.schema.json +570 -50
- package/dist/schemas/hdf-comparison.schema.json +820 -103
- package/dist/schemas/hdf-evidence-package.schema.json +564 -44
- package/dist/schemas/hdf-plan.schema.json +571 -50
- package/dist/schemas/hdf-results.schema.json +777 -80
- package/dist/schemas/hdf-system.schema.json +596 -59
- package/dist/ts/hdf.d.ts +3562 -0
- package/dist/ts/hdf.js +564 -0
- package/dist/ts/hdf.ts +3623 -0
- package/package.json +18 -17
- package/dist/ts/hdf-amendments.d.ts +0 -474
- package/dist/ts/hdf-amendments.js +0 -88
- package/dist/ts/hdf-amendments.ts +0 -486
- package/dist/ts/hdf-baseline.d.ts +0 -472
- package/dist/ts/hdf-baseline.js +0 -58
- package/dist/ts/hdf-baseline.ts +0 -483
- package/dist/ts/hdf-comparison.d.ts +0 -1185
- package/dist/ts/hdf-comparison.js +0 -216
- package/dist/ts/hdf-comparison.ts +0 -1210
- package/dist/ts/hdf-evidence-package.d.ts +0 -348
- package/dist/ts/hdf-evidence-package.js +0 -39
- package/dist/ts/hdf-evidence-package.ts +0 -356
- package/dist/ts/hdf-plan.d.ts +0 -204
- package/dist/ts/hdf-plan.js +0 -23
- package/dist/ts/hdf-plan.ts +0 -205
- package/dist/ts/hdf-results.d.ts +0 -1511
- package/dist/ts/hdf-results.js +0 -194
- package/dist/ts/hdf-results.ts +0 -1536
- package/dist/ts/hdf-system.d.ts +0 -609
- package/dist/ts/hdf-system.js +0 -102
- package/dist/ts/hdf-system.ts +0 -617
|
@@ -1,1185 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Structured comparison between two or more HDF security assessment documents. Supports
|
|
3
|
-
* temporal, baseline, fleet, and multi-source comparison modes.
|
|
4
|
-
*/
|
|
5
|
-
export interface HdfComparison {
|
|
6
|
-
/**
|
|
7
|
-
* Map of annotation IDs to annotation objects, providing context or action items for
|
|
8
|
-
* requirement diffs.
|
|
9
|
-
*/
|
|
10
|
-
annotations?: {
|
|
11
|
-
[key: string]: Annotation;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Comparison of baselines between sources.
|
|
15
|
-
*/
|
|
16
|
-
baselineDiffs?: BaselineDiff[];
|
|
17
|
-
/**
|
|
18
|
-
* The mode of comparison being performed.
|
|
19
|
-
*/
|
|
20
|
-
comparisonMode: ComparisonMode;
|
|
21
|
-
/**
|
|
22
|
-
* Comparison of components between two system documents. Used in systemDrift mode.
|
|
23
|
-
*/
|
|
24
|
-
componentDiffs?: ComponentDiff[];
|
|
25
|
-
/**
|
|
26
|
-
* External/metadata changes separate from status changes (Terraform pattern).
|
|
27
|
-
*/
|
|
28
|
-
drift?: RequirementDiff[];
|
|
29
|
-
/**
|
|
30
|
-
* Reserved for tool-specific data not defined in the HDF standard.
|
|
31
|
-
*/
|
|
32
|
-
extensions?: {
|
|
33
|
-
[key: string]: any;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Schema version for this comparison format.
|
|
37
|
-
*/
|
|
38
|
-
formatVersion: FormatVersion;
|
|
39
|
-
/**
|
|
40
|
-
* Information about the tool that generated this comparison.
|
|
41
|
-
*/
|
|
42
|
-
generator?: Generator;
|
|
43
|
-
/**
|
|
44
|
-
* Cryptographic integrity information for verifying this comparison document.
|
|
45
|
-
*/
|
|
46
|
-
integrity?: Integrity;
|
|
47
|
-
/**
|
|
48
|
-
* Configuration for how requirements were matched across sources.
|
|
49
|
-
*/
|
|
50
|
-
matching?: MatchingConfig;
|
|
51
|
-
/**
|
|
52
|
-
* Comparison of packages between two SBOMs. Used in systemDrift mode for SBOM comparison.
|
|
53
|
-
*/
|
|
54
|
-
packageDiffs?: PackageDiff[];
|
|
55
|
-
/**
|
|
56
|
-
* Detailed comparison of individual requirements between sources.
|
|
57
|
-
*/
|
|
58
|
-
requirementDiffs: RequirementDiff[];
|
|
59
|
-
/**
|
|
60
|
-
* The source documents being compared. At least two sources are required.
|
|
61
|
-
*/
|
|
62
|
-
sources: Source[];
|
|
63
|
-
/**
|
|
64
|
-
* Summary statistics for the overall comparison.
|
|
65
|
-
*/
|
|
66
|
-
summary: ComparisonSummary;
|
|
67
|
-
/**
|
|
68
|
-
* URI identifying the system being compared in systemDrift mode.
|
|
69
|
-
*/
|
|
70
|
-
systemRef?: string;
|
|
71
|
-
/**
|
|
72
|
-
* When this comparison was performed.
|
|
73
|
-
*/
|
|
74
|
-
timestamp?: Date;
|
|
75
|
-
[property: string]: any;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* An annotation attached to a comparison, providing context or action items.
|
|
79
|
-
*/
|
|
80
|
-
export interface Annotation {
|
|
81
|
-
/**
|
|
82
|
-
* The category of this annotation.
|
|
83
|
-
*/
|
|
84
|
-
category?: AnnotationCategory;
|
|
85
|
-
/**
|
|
86
|
-
* Detailed description of the annotation.
|
|
87
|
-
*/
|
|
88
|
-
description?: string;
|
|
89
|
-
/**
|
|
90
|
-
* Human-readable label for this annotation.
|
|
91
|
-
*/
|
|
92
|
-
label: string;
|
|
93
|
-
/**
|
|
94
|
-
* Whether this annotation requires human confirmation before acting on it.
|
|
95
|
-
*/
|
|
96
|
-
needsConfirmation?: boolean;
|
|
97
|
-
[property: string]: any;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* The category of this annotation.
|
|
101
|
-
*
|
|
102
|
-
* The category of an annotation attached to a comparison.
|
|
103
|
-
*/
|
|
104
|
-
export declare enum AnnotationCategory {
|
|
105
|
-
BaselineChange = "baselineChange",
|
|
106
|
-
Drift = "drift",
|
|
107
|
-
Remediation = "remediation",
|
|
108
|
-
ScannerNote = "scannerNote",
|
|
109
|
-
Waiver = "waiver"
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Comparison of a baseline between sources.
|
|
113
|
-
*/
|
|
114
|
-
export interface BaselineDiff {
|
|
115
|
-
/**
|
|
116
|
-
* The source of any ID mapping used to correlate requirements across baseline versions.
|
|
117
|
-
*/
|
|
118
|
-
mappingSource?: string;
|
|
119
|
-
/**
|
|
120
|
-
* Name of the baseline being compared.
|
|
121
|
-
*/
|
|
122
|
-
name: string;
|
|
123
|
-
/**
|
|
124
|
-
* Version of the baseline in the new source.
|
|
125
|
-
*/
|
|
126
|
-
newVersion?: string;
|
|
127
|
-
/**
|
|
128
|
-
* Version of the baseline in the old source.
|
|
129
|
-
*/
|
|
130
|
-
oldVersion?: string;
|
|
131
|
-
/**
|
|
132
|
-
* The state of this baseline in the comparison.
|
|
133
|
-
*/
|
|
134
|
-
state: BaselineDiffState;
|
|
135
|
-
[property: string]: any;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* The state of this baseline in the comparison.
|
|
139
|
-
*
|
|
140
|
-
* The state of this component in the comparison.
|
|
141
|
-
*/
|
|
142
|
-
export declare enum BaselineDiffState {
|
|
143
|
-
Absent = "absent",
|
|
144
|
-
New = "new",
|
|
145
|
-
Unchanged = "unchanged",
|
|
146
|
-
Updated = "updated"
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* The mode of comparison being performed.
|
|
150
|
-
*
|
|
151
|
-
* The mode of comparison. 'temporal' compares the same target over time. 'baseline'
|
|
152
|
-
* compares against a golden reference. 'fleet' compares across multiple systems.
|
|
153
|
-
* 'multiSource' compares outputs from different scanners. 'baselineEvolution' compares two
|
|
154
|
-
* baseline documents to detect requirement changes between versions. 'systemDrift' compares
|
|
155
|
-
* two system documents to detect component-level changes.
|
|
156
|
-
*/
|
|
157
|
-
export declare enum ComparisonMode {
|
|
158
|
-
Baseline = "baseline",
|
|
159
|
-
BaselineEvolution = "baselineEvolution",
|
|
160
|
-
Fleet = "fleet",
|
|
161
|
-
MultiSource = "multiSource",
|
|
162
|
-
SystemDrift = "systemDrift",
|
|
163
|
-
Temporal = "temporal"
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Comparison of a single component between two system document versions.
|
|
167
|
-
*/
|
|
168
|
-
export interface ComponentDiff {
|
|
169
|
-
/**
|
|
170
|
-
* Component snapshot from the new system document.
|
|
171
|
-
*/
|
|
172
|
-
after?: any;
|
|
173
|
-
/**
|
|
174
|
-
* Component snapshot from the old system document.
|
|
175
|
-
*/
|
|
176
|
-
before?: any;
|
|
177
|
-
/**
|
|
178
|
-
* Detailed field-level changes between the before and after component snapshots.
|
|
179
|
-
*/
|
|
180
|
-
fieldChanges?: FieldChange[];
|
|
181
|
-
/**
|
|
182
|
-
* Component name used for matching across system versions.
|
|
183
|
-
*/
|
|
184
|
-
name: string;
|
|
185
|
-
/**
|
|
186
|
-
* The state of this component in the comparison.
|
|
187
|
-
*/
|
|
188
|
-
state: BaselineDiffState;
|
|
189
|
-
[property: string]: any;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* A single field-level change between two versions of a requirement.
|
|
193
|
-
*/
|
|
194
|
-
export interface FieldChange {
|
|
195
|
-
/**
|
|
196
|
-
* The new value of the field (for 'add' and 'replace' operations).
|
|
197
|
-
*/
|
|
198
|
-
newValue?: any;
|
|
199
|
-
/**
|
|
200
|
-
* The previous value of the field (for 'remove' and 'replace' operations).
|
|
201
|
-
*/
|
|
202
|
-
oldValue?: any;
|
|
203
|
-
/**
|
|
204
|
-
* The type of change operation.
|
|
205
|
-
*/
|
|
206
|
-
op: Op;
|
|
207
|
-
/**
|
|
208
|
-
* JSON Pointer path to the changed field.
|
|
209
|
-
*/
|
|
210
|
-
path: string;
|
|
211
|
-
[property: string]: any;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* The type of change operation.
|
|
215
|
-
*/
|
|
216
|
-
export declare enum Op {
|
|
217
|
-
Add = "add",
|
|
218
|
-
Remove = "remove",
|
|
219
|
-
Replace = "replace"
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* A comparison of a single requirement between sources, including state, changes, and full
|
|
223
|
-
* before/after snapshots.
|
|
224
|
-
*/
|
|
225
|
-
export interface RequirementDiff {
|
|
226
|
-
/**
|
|
227
|
-
* The requirement as it appeared in the new source. Null when state is 'absent'.
|
|
228
|
-
*/
|
|
229
|
-
after: any;
|
|
230
|
-
/**
|
|
231
|
-
* Sensitive data from the new source that should not be included in the main after snapshot.
|
|
232
|
-
*/
|
|
233
|
-
afterSensitive?: {
|
|
234
|
-
[key: string]: any;
|
|
235
|
-
};
|
|
236
|
-
/**
|
|
237
|
-
* IDs of annotations attached to this requirement diff.
|
|
238
|
-
*/
|
|
239
|
-
annotationIds?: string[];
|
|
240
|
-
/**
|
|
241
|
-
* The requirement as it appeared in the old/reference source. Null when state is 'new'.
|
|
242
|
-
*/
|
|
243
|
-
before: any;
|
|
244
|
-
/**
|
|
245
|
-
* Sensitive data from the old source that should not be included in the main before
|
|
246
|
-
* snapshot.
|
|
247
|
-
*/
|
|
248
|
-
beforeSensitive?: {
|
|
249
|
-
[key: string]: any;
|
|
250
|
-
};
|
|
251
|
-
/**
|
|
252
|
-
* The reasons for the state change.
|
|
253
|
-
*/
|
|
254
|
-
changeReasons: ChangeReason[];
|
|
255
|
-
/**
|
|
256
|
-
* Conflicts between multiple scanner results for this requirement.
|
|
257
|
-
*/
|
|
258
|
-
conflicts?: ScannerConflict[];
|
|
259
|
-
/**
|
|
260
|
-
* Detailed field-level changes between the before and after versions.
|
|
261
|
-
*/
|
|
262
|
-
fieldChanges: FieldChange[];
|
|
263
|
-
/**
|
|
264
|
-
* The canonical requirement identifier used for this diff.
|
|
265
|
-
*/
|
|
266
|
-
id: string;
|
|
267
|
-
/**
|
|
268
|
-
* Confidence score for the match (0-1).
|
|
269
|
-
*/
|
|
270
|
-
matchConfidence?: number;
|
|
271
|
-
/**
|
|
272
|
-
* Whether the match was manually confirmed by a human.
|
|
273
|
-
*/
|
|
274
|
-
matchManual?: boolean;
|
|
275
|
-
/**
|
|
276
|
-
* The strategy that was used to match this requirement across sources.
|
|
277
|
-
*/
|
|
278
|
-
matchStrategy?: MatchStrategy;
|
|
279
|
-
/**
|
|
280
|
-
* The effective status of the requirement in the new source.
|
|
281
|
-
*/
|
|
282
|
-
newEffectiveStatus?: string;
|
|
283
|
-
/**
|
|
284
|
-
* The requirement ID in the new source, if different from the canonical id.
|
|
285
|
-
*/
|
|
286
|
-
newId?: string;
|
|
287
|
-
/**
|
|
288
|
-
* The impact score of the requirement in the new source (0-1).
|
|
289
|
-
*/
|
|
290
|
-
newImpact?: number;
|
|
291
|
-
/**
|
|
292
|
-
* The effective status of the requirement in the old source.
|
|
293
|
-
*/
|
|
294
|
-
oldEffectiveStatus?: string;
|
|
295
|
-
/**
|
|
296
|
-
* The requirement ID in the old source, if different from the canonical id.
|
|
297
|
-
*/
|
|
298
|
-
oldId?: string;
|
|
299
|
-
/**
|
|
300
|
-
* The impact score of the requirement in the old source (0-1).
|
|
301
|
-
*/
|
|
302
|
-
oldImpact?: number;
|
|
303
|
-
/**
|
|
304
|
-
* Index into the sources array for multi-source comparisons.
|
|
305
|
-
*/
|
|
306
|
-
sourceIndex?: number;
|
|
307
|
-
/**
|
|
308
|
-
* The state of this requirement in the comparison.
|
|
309
|
-
*/
|
|
310
|
-
state: RequirementState;
|
|
311
|
-
/**
|
|
312
|
-
* The requirement title for human readability.
|
|
313
|
-
*/
|
|
314
|
-
title?: string;
|
|
315
|
-
[property: string]: any;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* The reason a requirement's state changed between sources.
|
|
319
|
-
*/
|
|
320
|
-
export declare enum ChangeReason {
|
|
321
|
-
BaselineUpgraded = "baselineUpgraded",
|
|
322
|
-
ConfigChanged = "configChanged",
|
|
323
|
-
ControlMapped = "controlMapped",
|
|
324
|
-
ImpactChanged = "impactChanged",
|
|
325
|
-
MetadataChanged = "metadataChanged",
|
|
326
|
-
OverrideAdded = "overrideAdded",
|
|
327
|
-
OverrideExpired = "overrideExpired",
|
|
328
|
-
OverrideModified = "overrideModified",
|
|
329
|
-
OverrideRemoved = "overrideRemoved",
|
|
330
|
-
ResultChanged = "resultChanged",
|
|
331
|
-
ScannerChanged = "scannerChanged",
|
|
332
|
-
TargetChanged = "targetChanged"
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* A conflict between scanner results for the same requirement.
|
|
336
|
-
*/
|
|
337
|
-
export interface ScannerConflict {
|
|
338
|
-
/**
|
|
339
|
-
* The field where the conflict occurs.
|
|
340
|
-
*/
|
|
341
|
-
field: string;
|
|
342
|
-
/**
|
|
343
|
-
* How the conflict was resolved.
|
|
344
|
-
*/
|
|
345
|
-
resolution?: ConflictResolution;
|
|
346
|
-
/**
|
|
347
|
-
* Index of the source whose value was chosen as the resolution.
|
|
348
|
-
*/
|
|
349
|
-
resolvedIndex?: number;
|
|
350
|
-
/**
|
|
351
|
-
* The conflicting values from each source.
|
|
352
|
-
*/
|
|
353
|
-
values: Value[];
|
|
354
|
-
[property: string]: any;
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* How the conflict was resolved.
|
|
358
|
-
*
|
|
359
|
-
* How a conflict between multiple scanner results was resolved.
|
|
360
|
-
*/
|
|
361
|
-
export declare enum ConflictResolution {
|
|
362
|
-
Manual = "manual",
|
|
363
|
-
MostRecent = "mostRecent",
|
|
364
|
-
MostSevere = "mostSevere",
|
|
365
|
-
Unresolved = "unresolved"
|
|
366
|
-
}
|
|
367
|
-
export interface Value {
|
|
368
|
-
/**
|
|
369
|
-
* Zero-based index into the sources array.
|
|
370
|
-
*/
|
|
371
|
-
sourceIndex: number;
|
|
372
|
-
/**
|
|
373
|
-
* Human-readable label for the source.
|
|
374
|
-
*/
|
|
375
|
-
sourceLabel: string;
|
|
376
|
-
/**
|
|
377
|
-
* The value reported by this source for the conflicting field.
|
|
378
|
-
*/
|
|
379
|
-
value: any;
|
|
380
|
-
[property: string]: any;
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* The strategy that was used to match this requirement across sources.
|
|
384
|
-
*
|
|
385
|
-
* The strategy used to match requirements across sources. 'exactId' matches by identical
|
|
386
|
-
* IDs. 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework
|
|
387
|
-
* identifiers. 'fuzzyTitle'/'fuzzyContent' use text similarity.
|
|
388
|
-
*
|
|
389
|
-
* The primary strategy used to match requirements across sources.
|
|
390
|
-
*/
|
|
391
|
-
export declare enum MatchStrategy {
|
|
392
|
-
CciMatch = "cciMatch",
|
|
393
|
-
ExactID = "exactId",
|
|
394
|
-
FuzzyContent = "fuzzyContent",
|
|
395
|
-
FuzzyTitle = "fuzzyTitle",
|
|
396
|
-
MappedID = "mappedId",
|
|
397
|
-
NISTMatch = "nistMatch"
|
|
398
|
-
}
|
|
399
|
-
/**
|
|
400
|
-
* The state of this requirement in the comparison.
|
|
401
|
-
*
|
|
402
|
-
* SARIF-compatible vocabulary extended for security. 'new' = present only in new source,
|
|
403
|
-
* 'absent' = present only in old, 'unchanged' = same effective status, 'updated' = status
|
|
404
|
-
* changed (generic), 'fixed' = was failing now passing, 'regressed' = was passing now
|
|
405
|
-
* failing, 'moved' = reorganized same content, 'split'/'merged' = reserved for v1.1.
|
|
406
|
-
*/
|
|
407
|
-
export declare enum RequirementState {
|
|
408
|
-
Absent = "absent",
|
|
409
|
-
Fixed = "fixed",
|
|
410
|
-
Merged = "merged",
|
|
411
|
-
Moved = "moved",
|
|
412
|
-
New = "new",
|
|
413
|
-
Regressed = "regressed",
|
|
414
|
-
Split = "split",
|
|
415
|
-
Unchanged = "unchanged",
|
|
416
|
-
Updated = "updated"
|
|
417
|
-
}
|
|
418
|
-
export declare enum FormatVersion {
|
|
419
|
-
The100 = "1.0.0"
|
|
420
|
-
}
|
|
421
|
-
/**
|
|
422
|
-
* Information about the tool that generated this comparison.
|
|
423
|
-
*
|
|
424
|
-
* Information about the tool that generated this HDF file.
|
|
425
|
-
*/
|
|
426
|
-
export interface Generator {
|
|
427
|
-
/**
|
|
428
|
-
* The name of the software that produced this HDF file. Example: 'gosec-to-hdf'.
|
|
429
|
-
*/
|
|
430
|
-
name: string;
|
|
431
|
-
/**
|
|
432
|
-
* The version of the tool. Example: '5.22.3'.
|
|
433
|
-
*/
|
|
434
|
-
version: string;
|
|
435
|
-
[property: string]: any;
|
|
436
|
-
}
|
|
437
|
-
/**
|
|
438
|
-
* Cryptographic integrity information for verifying this comparison document.
|
|
439
|
-
*
|
|
440
|
-
* Cryptographic integrity information for verifying the HDF file has not been tampered
|
|
441
|
-
* with. If algorithm is provided, checksum must also be provided, and vice versa.
|
|
442
|
-
*/
|
|
443
|
-
export interface Integrity {
|
|
444
|
-
/**
|
|
445
|
-
* The hash algorithm used for the checksum.
|
|
446
|
-
*/
|
|
447
|
-
algorithm?: HashAlgorithm;
|
|
448
|
-
/**
|
|
449
|
-
* The checksum value.
|
|
450
|
-
*/
|
|
451
|
-
checksum?: string;
|
|
452
|
-
/**
|
|
453
|
-
* Optional cryptographic signature.
|
|
454
|
-
*/
|
|
455
|
-
signature?: string;
|
|
456
|
-
/**
|
|
457
|
-
* Identifier of who signed this file.
|
|
458
|
-
*/
|
|
459
|
-
signedBy?: string;
|
|
460
|
-
[property: string]: any;
|
|
461
|
-
}
|
|
462
|
-
/**
|
|
463
|
-
* The hash algorithm used for the checksum.
|
|
464
|
-
*
|
|
465
|
-
* Supported cryptographic hash algorithms for checksums and integrity verification.
|
|
466
|
-
*/
|
|
467
|
-
export declare enum HashAlgorithm {
|
|
468
|
-
Sha256 = "sha256",
|
|
469
|
-
Sha384 = "sha384",
|
|
470
|
-
Sha512 = "sha512"
|
|
471
|
-
}
|
|
472
|
-
/**
|
|
473
|
-
* Configuration for how requirements were matched across sources.
|
|
474
|
-
*
|
|
475
|
-
* Configuration for how requirements are matched across sources.
|
|
476
|
-
*/
|
|
477
|
-
export interface MatchingConfig {
|
|
478
|
-
/**
|
|
479
|
-
* Ordered list of fallback strategies tried when the primary strategy fails to find a match.
|
|
480
|
-
*/
|
|
481
|
-
fallbackStrategies?: MatchStrategy[];
|
|
482
|
-
/**
|
|
483
|
-
* Fields used to compute a fingerprint for fuzzy matching.
|
|
484
|
-
*/
|
|
485
|
-
fingerprintFields?: string[];
|
|
486
|
-
/**
|
|
487
|
-
* URI pointing to an external mapping table used for ID translation.
|
|
488
|
-
*/
|
|
489
|
-
mappingTableUri?: string;
|
|
490
|
-
/**
|
|
491
|
-
* Minimum confidence score (0-1) required to accept a match.
|
|
492
|
-
*/
|
|
493
|
-
minimumConfidence?: number;
|
|
494
|
-
/**
|
|
495
|
-
* The primary strategy used to match requirements across sources.
|
|
496
|
-
*/
|
|
497
|
-
primaryStrategy: MatchStrategy;
|
|
498
|
-
[property: string]: any;
|
|
499
|
-
}
|
|
500
|
-
/**
|
|
501
|
-
* Comparison of a single package between two SBOM versions, matched by purl.
|
|
502
|
-
*/
|
|
503
|
-
export interface PackageDiff {
|
|
504
|
-
/**
|
|
505
|
-
* License identifiers for this package.
|
|
506
|
-
*/
|
|
507
|
-
licenses?: string[];
|
|
508
|
-
/**
|
|
509
|
-
* Human-readable package name.
|
|
510
|
-
*/
|
|
511
|
-
name?: string;
|
|
512
|
-
/**
|
|
513
|
-
* Package version in the new SBOM.
|
|
514
|
-
*/
|
|
515
|
-
newVersion?: string;
|
|
516
|
-
/**
|
|
517
|
-
* Package version in the old SBOM.
|
|
518
|
-
*/
|
|
519
|
-
oldVersion?: string;
|
|
520
|
-
/**
|
|
521
|
-
* Package URL (purl) used as the identity key for matching across SBOMs.
|
|
522
|
-
*/
|
|
523
|
-
purl: string;
|
|
524
|
-
/**
|
|
525
|
-
* The state of this package: added (new in new SBOM), removed (absent from new SBOM),
|
|
526
|
-
* updated (version changed), unchanged.
|
|
527
|
-
*/
|
|
528
|
-
state: PackageDiffState;
|
|
529
|
-
[property: string]: any;
|
|
530
|
-
}
|
|
531
|
-
/**
|
|
532
|
-
* The state of this package: added (new in new SBOM), removed (absent from new SBOM),
|
|
533
|
-
* updated (version changed), unchanged.
|
|
534
|
-
*/
|
|
535
|
-
export declare enum PackageDiffState {
|
|
536
|
-
Added = "added",
|
|
537
|
-
Removed = "removed",
|
|
538
|
-
Unchanged = "unchanged",
|
|
539
|
-
Updated = "updated"
|
|
540
|
-
}
|
|
541
|
-
/**
|
|
542
|
-
* A source document participating in the comparison.
|
|
543
|
-
*/
|
|
544
|
-
export interface Source {
|
|
545
|
-
/**
|
|
546
|
-
* When the source assessment was performed. ISO 8601 format.
|
|
547
|
-
*/
|
|
548
|
-
assessmentTimestamp?: Date;
|
|
549
|
-
/**
|
|
550
|
-
* Reference to the baseline used in this source assessment.
|
|
551
|
-
*/
|
|
552
|
-
baselineRef?: BaselineRef;
|
|
553
|
-
/**
|
|
554
|
-
* Cryptographic checksum of the source document for integrity verification.
|
|
555
|
-
*/
|
|
556
|
-
checksum?: Checksum;
|
|
557
|
-
/**
|
|
558
|
-
* The components assessed in this source.
|
|
559
|
-
*/
|
|
560
|
-
components?: Component[];
|
|
561
|
-
/**
|
|
562
|
-
* Human-readable label for this source. Example: 'Before remediation scan'.
|
|
563
|
-
*/
|
|
564
|
-
label: string;
|
|
565
|
-
/**
|
|
566
|
-
* The original format of the source document before conversion to HDF.
|
|
567
|
-
*/
|
|
568
|
-
originalFormat?: OriginalFormat;
|
|
569
|
-
/**
|
|
570
|
-
* The role of this source in the comparison.
|
|
571
|
-
*/
|
|
572
|
-
role: SourceRole;
|
|
573
|
-
/**
|
|
574
|
-
* The security tool that produced the assessment data in this source.
|
|
575
|
-
*/
|
|
576
|
-
tool?: Tool;
|
|
577
|
-
/**
|
|
578
|
-
* URI pointing to the source document.
|
|
579
|
-
*/
|
|
580
|
-
uri?: string;
|
|
581
|
-
[property: string]: any;
|
|
582
|
-
}
|
|
583
|
-
/**
|
|
584
|
-
* Reference to the baseline used in this source assessment.
|
|
585
|
-
*/
|
|
586
|
-
export interface BaselineRef {
|
|
587
|
-
/**
|
|
588
|
-
* Name of the baseline used in this source.
|
|
589
|
-
*/
|
|
590
|
-
name: string;
|
|
591
|
-
/**
|
|
592
|
-
* Version of the baseline used in this source.
|
|
593
|
-
*/
|
|
594
|
-
version?: string;
|
|
595
|
-
[property: string]: any;
|
|
596
|
-
}
|
|
597
|
-
/**
|
|
598
|
-
* Cryptographic checksum of the source document for integrity verification.
|
|
599
|
-
*
|
|
600
|
-
* Cryptographic checksum for baseline integrity verification.
|
|
601
|
-
*/
|
|
602
|
-
export interface Checksum {
|
|
603
|
-
/**
|
|
604
|
-
* The hash algorithm used for the checksum.
|
|
605
|
-
*/
|
|
606
|
-
algorithm: HashAlgorithm;
|
|
607
|
-
/**
|
|
608
|
-
* The checksum value.
|
|
609
|
-
*/
|
|
610
|
-
value: string;
|
|
611
|
-
[property: string]: any;
|
|
612
|
-
}
|
|
613
|
-
/**
|
|
614
|
-
* A system component. Uses discriminated union pattern with 'type' field as discriminator.
|
|
615
|
-
* Superset of Target with identity, external IDs, and SBOM support.
|
|
616
|
-
*
|
|
617
|
-
* A physical or virtual server, workstation, or network device.
|
|
618
|
-
*
|
|
619
|
-
* Base properties shared by all component types. Extends the Target concept with stable
|
|
620
|
-
* identity, external references, and SBOM embedding.
|
|
621
|
-
*
|
|
622
|
-
* A static container image (not running).
|
|
623
|
-
*
|
|
624
|
-
* A running container instance.
|
|
625
|
-
*
|
|
626
|
-
* A container orchestration platform (Kubernetes, OpenShift, ECS, etc.).
|
|
627
|
-
*
|
|
628
|
-
* A cloud provider account (AWS account, Azure subscription, GCP project).
|
|
629
|
-
*
|
|
630
|
-
* A specific cloud resource (EC2 instance, S3 bucket, Azure VM, etc.).
|
|
631
|
-
*
|
|
632
|
-
* A code repository (for SAST tools).
|
|
633
|
-
*
|
|
634
|
-
* A running application or API (for DAST tools).
|
|
635
|
-
*
|
|
636
|
-
* A software artifact or dependency (for SCA tools).
|
|
637
|
-
*
|
|
638
|
-
* A network segment or network device.
|
|
639
|
-
*
|
|
640
|
-
* A database instance.
|
|
641
|
-
*/
|
|
642
|
-
export interface Component {
|
|
643
|
-
/**
|
|
644
|
-
* Names of baselines that apply to this component.
|
|
645
|
-
*/
|
|
646
|
-
baselineRefs?: string[];
|
|
647
|
-
/**
|
|
648
|
-
* Stable UUID (RFC 4122) for this component. Required in hdf-system documents, optional in
|
|
649
|
-
* hdf-results. Enables cross-document correlation, diffing, and data flow references.
|
|
650
|
-
*/
|
|
651
|
-
componentId?: string;
|
|
652
|
-
/**
|
|
653
|
-
* Description of this component's role or purpose.
|
|
654
|
-
*/
|
|
655
|
-
description?: string;
|
|
656
|
-
/**
|
|
657
|
-
* Map of external identifier scheme to value. Well-known schemes: aws (instance ID), azure
|
|
658
|
-
* (resource ID), cmdb (asset ID), emass (system ID), cve (CVE ID). Custom schemes are
|
|
659
|
-
* allowed.
|
|
660
|
-
*/
|
|
661
|
-
externalIds?: {
|
|
662
|
-
[key: string]: string;
|
|
663
|
-
};
|
|
664
|
-
/**
|
|
665
|
-
* System-specific overrides for baseline input values.
|
|
666
|
-
*/
|
|
667
|
-
inputOverrides?: InputOverride[];
|
|
668
|
-
/**
|
|
669
|
-
* Optional key-value labels for flexible grouping. Well-known keys: system, component,
|
|
670
|
-
* environment, region, team. Values must be strings.
|
|
671
|
-
*/
|
|
672
|
-
labels?: {
|
|
673
|
-
[key: string]: string;
|
|
674
|
-
};
|
|
675
|
-
/**
|
|
676
|
-
* Human-readable name for this component.
|
|
677
|
-
*/
|
|
678
|
-
name: string;
|
|
679
|
-
/**
|
|
680
|
-
* Team or individual responsible for this component. Enables per-component ownership when
|
|
681
|
-
* different teams manage different parts of a system.
|
|
682
|
-
*/
|
|
683
|
-
owner?: Identity;
|
|
684
|
-
/**
|
|
685
|
-
* Embedded CycloneDX or SPDX SBOM document representing this component's software
|
|
686
|
-
* inventory. The sbomFormat field determines which format constraints apply.
|
|
687
|
-
*/
|
|
688
|
-
sbom?: any;
|
|
689
|
-
/**
|
|
690
|
-
* Format of the SBOM (embedded or referenced). Required when sbom or sbomRef is present.
|
|
691
|
-
*/
|
|
692
|
-
sbomFormat?: SbomFormat;
|
|
693
|
-
/**
|
|
694
|
-
* URI reference to an external CycloneDX or SPDX SBOM document for this component. May be a
|
|
695
|
-
* relative path, absolute URI, or fragment identifier.
|
|
696
|
-
*/
|
|
697
|
-
sbomRef?: string;
|
|
698
|
-
/**
|
|
699
|
-
* Label selector to match targets belonging to this component during migration. Targets
|
|
700
|
-
* with matching labels are automatically included.
|
|
701
|
-
*/
|
|
702
|
-
targetSelector?: {
|
|
703
|
-
[key: string]: string;
|
|
704
|
-
};
|
|
705
|
-
/**
|
|
706
|
-
* Component type discriminator. Same values as Target types.
|
|
707
|
-
*/
|
|
708
|
-
type: Description;
|
|
709
|
-
/**
|
|
710
|
-
* Fully qualified domain name.
|
|
711
|
-
*/
|
|
712
|
-
fqdn?: string;
|
|
713
|
-
/**
|
|
714
|
-
* IP address of the host.
|
|
715
|
-
*/
|
|
716
|
-
ipAddress?: string;
|
|
717
|
-
/**
|
|
718
|
-
* MAC address in colon-separated hexadecimal format.
|
|
719
|
-
*/
|
|
720
|
-
macAddress?: string;
|
|
721
|
-
/**
|
|
722
|
-
* Operating system name.
|
|
723
|
-
*/
|
|
724
|
-
osName?: string;
|
|
725
|
-
/**
|
|
726
|
-
* Operating system version.
|
|
727
|
-
*/
|
|
728
|
-
osVersion?: string;
|
|
729
|
-
/**
|
|
730
|
-
* Image digest for immutable reference.
|
|
731
|
-
*/
|
|
732
|
-
digest?: string;
|
|
733
|
-
/**
|
|
734
|
-
* Container image ID.
|
|
735
|
-
*/
|
|
736
|
-
imageId?: string;
|
|
737
|
-
/**
|
|
738
|
-
* Container registry. Example: 'docker.io'.
|
|
739
|
-
*/
|
|
740
|
-
registry?: string;
|
|
741
|
-
/**
|
|
742
|
-
* Repository name. Example: 'library/nginx'.
|
|
743
|
-
*/
|
|
744
|
-
repository?: string;
|
|
745
|
-
/**
|
|
746
|
-
* Image tag. Example: '1.25'.
|
|
747
|
-
*/
|
|
748
|
-
tag?: string;
|
|
749
|
-
/**
|
|
750
|
-
* Running container ID.
|
|
751
|
-
*/
|
|
752
|
-
containerId?: string;
|
|
753
|
-
/**
|
|
754
|
-
* Image the container was started from.
|
|
755
|
-
*/
|
|
756
|
-
image?: string;
|
|
757
|
-
/**
|
|
758
|
-
* Container runtime. Example: 'docker', 'containerd', 'cri-o'.
|
|
759
|
-
*/
|
|
760
|
-
runtime?: string;
|
|
761
|
-
/**
|
|
762
|
-
* Cluster name.
|
|
763
|
-
*/
|
|
764
|
-
clusterName?: string;
|
|
765
|
-
/**
|
|
766
|
-
* Namespace within the cluster, if applicable.
|
|
767
|
-
*/
|
|
768
|
-
namespace?: string;
|
|
769
|
-
/**
|
|
770
|
-
* Platform type. Example: 'kubernetes', 'openshift', 'ecs', 'docker-swarm'.
|
|
771
|
-
*/
|
|
772
|
-
platformType?: string;
|
|
773
|
-
/**
|
|
774
|
-
* Platform version.
|
|
775
|
-
*
|
|
776
|
-
* Application version.
|
|
777
|
-
*
|
|
778
|
-
* Package version.
|
|
779
|
-
*
|
|
780
|
-
* Database version.
|
|
781
|
-
*/
|
|
782
|
-
version?: string;
|
|
783
|
-
/**
|
|
784
|
-
* Cloud account identifier.
|
|
785
|
-
*/
|
|
786
|
-
accountId?: string;
|
|
787
|
-
/**
|
|
788
|
-
* Cloud provider.
|
|
789
|
-
*/
|
|
790
|
-
provider?: CloudProvider | null;
|
|
791
|
-
/**
|
|
792
|
-
* Cloud region, if applicable.
|
|
793
|
-
*
|
|
794
|
-
* Cloud region where the resource resides.
|
|
795
|
-
*/
|
|
796
|
-
region?: string;
|
|
797
|
-
/**
|
|
798
|
-
* Amazon Resource Name (AWS only).
|
|
799
|
-
*/
|
|
800
|
-
arn?: string;
|
|
801
|
-
/**
|
|
802
|
-
* Provider-specific resource identifier.
|
|
803
|
-
*/
|
|
804
|
-
resourceId?: string;
|
|
805
|
-
/**
|
|
806
|
-
* Type of cloud resource. Example: 'ec2:instance', 's3:bucket'.
|
|
807
|
-
*/
|
|
808
|
-
resourceType?: string;
|
|
809
|
-
/**
|
|
810
|
-
* Branch that was scanned.
|
|
811
|
-
*/
|
|
812
|
-
branch?: string;
|
|
813
|
-
/**
|
|
814
|
-
* Commit SHA that was scanned.
|
|
815
|
-
*/
|
|
816
|
-
commit?: string;
|
|
817
|
-
/**
|
|
818
|
-
* Repository URL.
|
|
819
|
-
*
|
|
820
|
-
* Application URL (for DAST tools).
|
|
821
|
-
*/
|
|
822
|
-
url?: string;
|
|
823
|
-
/**
|
|
824
|
-
* Environment. Example: 'production', 'staging', 'development'.
|
|
825
|
-
*/
|
|
826
|
-
environment?: string;
|
|
827
|
-
/**
|
|
828
|
-
* Package checksum for verification.
|
|
829
|
-
*/
|
|
830
|
-
checksum?: string;
|
|
831
|
-
/**
|
|
832
|
-
* Package manager. Example: 'npm', 'maven', 'pip', 'nuget'.
|
|
833
|
-
*/
|
|
834
|
-
packageManager?: string;
|
|
835
|
-
/**
|
|
836
|
-
* Package name.
|
|
837
|
-
*/
|
|
838
|
-
packageName?: string;
|
|
839
|
-
/**
|
|
840
|
-
* Network CIDR block.
|
|
841
|
-
*/
|
|
842
|
-
cidr?: string;
|
|
843
|
-
/**
|
|
844
|
-
* Network gateway address.
|
|
845
|
-
*/
|
|
846
|
-
gateway?: string;
|
|
847
|
-
/**
|
|
848
|
-
* Database engine. Example: 'postgresql', 'mysql', 'oracle', 'mssql'.
|
|
849
|
-
*/
|
|
850
|
-
engine?: string;
|
|
851
|
-
/**
|
|
852
|
-
* Database host.
|
|
853
|
-
*/
|
|
854
|
-
host?: string;
|
|
855
|
-
/**
|
|
856
|
-
* Database port.
|
|
857
|
-
*/
|
|
858
|
-
port?: number;
|
|
859
|
-
[property: string]: any;
|
|
860
|
-
}
|
|
861
|
-
/**
|
|
862
|
-
* An override of a baseline input value for a specific component. Enables system-specific
|
|
863
|
-
* tailoring of baseline parameters.
|
|
864
|
-
*/
|
|
865
|
-
export interface InputOverride {
|
|
866
|
-
/**
|
|
867
|
-
* Identity of the person or system that approved this override.
|
|
868
|
-
*/
|
|
869
|
-
approvedBy?: Identity;
|
|
870
|
-
/**
|
|
871
|
-
* Name of the baseline this override applies to. If omitted, applies to all baselines that
|
|
872
|
-
* define this input.
|
|
873
|
-
*/
|
|
874
|
-
baselineRef?: string;
|
|
875
|
-
/**
|
|
876
|
-
* Name of the input being overridden. Must match an Input.name in the referenced baseline.
|
|
877
|
-
*/
|
|
878
|
-
inputName: string;
|
|
879
|
-
/**
|
|
880
|
-
* Rationale for why this override is needed.
|
|
881
|
-
*/
|
|
882
|
-
justification?: string;
|
|
883
|
-
/**
|
|
884
|
-
* The overridden value. Should match the type of the original input.
|
|
885
|
-
*/
|
|
886
|
-
value: any;
|
|
887
|
-
[property: string]: any;
|
|
888
|
-
}
|
|
889
|
-
/**
|
|
890
|
-
* Identity of the person or system that approved this override.
|
|
891
|
-
*
|
|
892
|
-
* Represents an identity that performed an action, such as capturing evidence or applying
|
|
893
|
-
* an override.
|
|
894
|
-
*
|
|
895
|
-
* Team or individual responsible for this component. Enables per-component ownership when
|
|
896
|
-
* different teams manage different parts of a system.
|
|
897
|
-
*/
|
|
898
|
-
export interface Identity {
|
|
899
|
-
/**
|
|
900
|
-
* Optional description of the identity or identity system, particularly useful when type is
|
|
901
|
-
* 'other'.
|
|
902
|
-
*/
|
|
903
|
-
description?: string;
|
|
904
|
-
/**
|
|
905
|
-
* The identifier value. Example: 'user@example.com', 'jdoe', 'automated-scanner-01'.
|
|
906
|
-
*/
|
|
907
|
-
identifier: string;
|
|
908
|
-
/**
|
|
909
|
-
* The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
|
|
910
|
-
* 'system' for automated systems, 'simple' for basic string identifiers without additional
|
|
911
|
-
* classification, or 'other' for custom identity systems.
|
|
912
|
-
*/
|
|
913
|
-
type: Type;
|
|
914
|
-
[property: string]: any;
|
|
915
|
-
}
|
|
916
|
-
/**
|
|
917
|
-
* The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
|
|
918
|
-
* 'system' for automated systems, 'simple' for basic string identifiers without additional
|
|
919
|
-
* classification, or 'other' for custom identity systems.
|
|
920
|
-
*/
|
|
921
|
-
export declare enum Type {
|
|
922
|
-
Email = "email",
|
|
923
|
-
Other = "other",
|
|
924
|
-
Simple = "simple",
|
|
925
|
-
System = "system",
|
|
926
|
-
Username = "username"
|
|
927
|
-
}
|
|
928
|
-
export declare enum CloudProvider {
|
|
929
|
-
Aws = "aws",
|
|
930
|
-
Azure = "azure",
|
|
931
|
-
Gcp = "gcp",
|
|
932
|
-
Oci = "oci",
|
|
933
|
-
Other = "other"
|
|
934
|
-
}
|
|
935
|
-
/**
|
|
936
|
-
* Format of the SBOM (embedded or referenced). Required when sbom or sbomRef is present.
|
|
937
|
-
*/
|
|
938
|
-
export declare enum SbomFormat {
|
|
939
|
-
Cyclonedx = "cyclonedx",
|
|
940
|
-
Spdx = "spdx"
|
|
941
|
-
}
|
|
942
|
-
/**
|
|
943
|
-
* IP address of the host.
|
|
944
|
-
*/
|
|
945
|
-
export declare enum Description {
|
|
946
|
-
Application = "application",
|
|
947
|
-
Artifact = "artifact",
|
|
948
|
-
CloudAccount = "cloudAccount",
|
|
949
|
-
CloudResource = "cloudResource",
|
|
950
|
-
ContainerImage = "containerImage",
|
|
951
|
-
ContainerInstance = "containerInstance",
|
|
952
|
-
ContainerPlatform = "containerPlatform",
|
|
953
|
-
Database = "database",
|
|
954
|
-
Host = "host",
|
|
955
|
-
Network = "network",
|
|
956
|
-
Repository = "repository"
|
|
957
|
-
}
|
|
958
|
-
/**
|
|
959
|
-
* The original format of the source document before conversion to HDF.
|
|
960
|
-
*/
|
|
961
|
-
export declare enum OriginalFormat {
|
|
962
|
-
HdfV2 = "hdf-v2",
|
|
963
|
-
InspecV1 = "inspec-v1",
|
|
964
|
-
OscalAr = "oscal-ar",
|
|
965
|
-
Sarif = "sarif",
|
|
966
|
-
Xccdf = "xccdf"
|
|
967
|
-
}
|
|
968
|
-
/**
|
|
969
|
-
* The role of this source in the comparison.
|
|
970
|
-
*
|
|
971
|
-
* The role of a source document in the comparison.
|
|
972
|
-
*/
|
|
973
|
-
export declare enum SourceRole {
|
|
974
|
-
Golden = "golden",
|
|
975
|
-
New = "new",
|
|
976
|
-
Old = "old",
|
|
977
|
-
Reference = "reference",
|
|
978
|
-
System = "system"
|
|
979
|
-
}
|
|
980
|
-
/**
|
|
981
|
-
* The security tool that produced the assessment data in this source.
|
|
982
|
-
*
|
|
983
|
-
* The security tool that produced the assessment data represented in this HDF file. Aligns
|
|
984
|
-
* with SARIF, OSCAL, and CycloneDX terminology.
|
|
985
|
-
*/
|
|
986
|
-
export interface Tool {
|
|
987
|
-
/**
|
|
988
|
-
* The file format, if it is a recognized named format shared by multiple tools. Examples:
|
|
989
|
-
* 'SARIF', 'XCCDF'. Omit for tool-specific formats where the tool name already implies the
|
|
990
|
-
* format (Nessus XML, gosec JSON).
|
|
991
|
-
*/
|
|
992
|
-
format?: string;
|
|
993
|
-
/**
|
|
994
|
-
* The name of the security tool that produced the data. Examples: 'gosec', 'Semgrep',
|
|
995
|
-
* 'OpenSCAP', 'AWS Config', 'Nessus'. Omit if the tool cannot be identified.
|
|
996
|
-
*/
|
|
997
|
-
name?: string;
|
|
998
|
-
/**
|
|
999
|
-
* Version of the source tool, if available in the tool's output. Example: '5.22.3'.
|
|
1000
|
-
*/
|
|
1001
|
-
version?: string;
|
|
1002
|
-
[property: string]: any;
|
|
1003
|
-
}
|
|
1004
|
-
/**
|
|
1005
|
-
* Summary statistics for the overall comparison.
|
|
1006
|
-
*/
|
|
1007
|
-
export interface ComparisonSummary {
|
|
1008
|
-
/**
|
|
1009
|
-
* Number of requirements present only in the old source.
|
|
1010
|
-
*/
|
|
1011
|
-
absent?: number;
|
|
1012
|
-
/**
|
|
1013
|
-
* Average confidence score across all requirement matches (0-1).
|
|
1014
|
-
*/
|
|
1015
|
-
averageMatchConfidence?: number;
|
|
1016
|
-
/**
|
|
1017
|
-
* State counts broken down by severity level.
|
|
1018
|
-
*/
|
|
1019
|
-
bySeverity?: SeverityBreakdown;
|
|
1020
|
-
/**
|
|
1021
|
-
* Change in compliance percentage (new - old).
|
|
1022
|
-
*/
|
|
1023
|
-
complianceDelta?: number;
|
|
1024
|
-
/**
|
|
1025
|
-
* Number of requirements that changed from failing to passing.
|
|
1026
|
-
*/
|
|
1027
|
-
fixed?: number;
|
|
1028
|
-
/**
|
|
1029
|
-
* Number of requirements successfully matched between sources.
|
|
1030
|
-
*/
|
|
1031
|
-
matchedCount: number;
|
|
1032
|
-
/**
|
|
1033
|
-
* Number of requirements that were reorganized without content change.
|
|
1034
|
-
*/
|
|
1035
|
-
moved?: number;
|
|
1036
|
-
/**
|
|
1037
|
-
* Number of requirements present only in the new source.
|
|
1038
|
-
*/
|
|
1039
|
-
new?: number;
|
|
1040
|
-
/**
|
|
1041
|
-
* Compliance percentage of the new source (0-100).
|
|
1042
|
-
*/
|
|
1043
|
-
newCompliancePercent?: number;
|
|
1044
|
-
/**
|
|
1045
|
-
* Compliance percentage of the old source (0-100).
|
|
1046
|
-
*/
|
|
1047
|
-
oldCompliancePercent?: number;
|
|
1048
|
-
/**
|
|
1049
|
-
* Summary statistics for each individual source in a multi-source comparison.
|
|
1050
|
-
*/
|
|
1051
|
-
perSource?: PerSourceSummary[];
|
|
1052
|
-
/**
|
|
1053
|
-
* Number of requirements that changed from passing to failing.
|
|
1054
|
-
*/
|
|
1055
|
-
regressed?: number;
|
|
1056
|
-
/**
|
|
1057
|
-
* Total number of unique requirements across all sources.
|
|
1058
|
-
*/
|
|
1059
|
-
total: number;
|
|
1060
|
-
/**
|
|
1061
|
-
* Number of requirements with the same effective status.
|
|
1062
|
-
*/
|
|
1063
|
-
unchanged?: number;
|
|
1064
|
-
/**
|
|
1065
|
-
* Number of requirements in the new source with no match in the old source.
|
|
1066
|
-
*/
|
|
1067
|
-
unmatchedNewCount: number;
|
|
1068
|
-
/**
|
|
1069
|
-
* Number of requirements in the old source with no match in the new source.
|
|
1070
|
-
*/
|
|
1071
|
-
unmatchedOldCount: number;
|
|
1072
|
-
/**
|
|
1073
|
-
* Number of requirements with a generic status change.
|
|
1074
|
-
*/
|
|
1075
|
-
updated?: number;
|
|
1076
|
-
[property: string]: any;
|
|
1077
|
-
}
|
|
1078
|
-
/**
|
|
1079
|
-
* State counts broken down by severity level.
|
|
1080
|
-
*
|
|
1081
|
-
* Breakdown of state counts by severity level.
|
|
1082
|
-
*/
|
|
1083
|
-
export interface SeverityBreakdown {
|
|
1084
|
-
/**
|
|
1085
|
-
* State counts for critical severity requirements.
|
|
1086
|
-
*/
|
|
1087
|
-
critical?: StateCounts;
|
|
1088
|
-
/**
|
|
1089
|
-
* State counts for high severity requirements.
|
|
1090
|
-
*/
|
|
1091
|
-
high?: StateCounts;
|
|
1092
|
-
/**
|
|
1093
|
-
* State counts for low severity requirements.
|
|
1094
|
-
*/
|
|
1095
|
-
low?: StateCounts;
|
|
1096
|
-
/**
|
|
1097
|
-
* State counts for medium severity requirements.
|
|
1098
|
-
*/
|
|
1099
|
-
medium?: StateCounts;
|
|
1100
|
-
[property: string]: any;
|
|
1101
|
-
}
|
|
1102
|
-
/**
|
|
1103
|
-
* State counts for critical severity requirements.
|
|
1104
|
-
*
|
|
1105
|
-
* Counts of requirements in each state.
|
|
1106
|
-
*
|
|
1107
|
-
* State counts for high severity requirements.
|
|
1108
|
-
*
|
|
1109
|
-
* State counts for low severity requirements.
|
|
1110
|
-
*
|
|
1111
|
-
* State counts for medium severity requirements.
|
|
1112
|
-
*/
|
|
1113
|
-
export interface StateCounts {
|
|
1114
|
-
/**
|
|
1115
|
-
* Number of requirements present only in the old source.
|
|
1116
|
-
*/
|
|
1117
|
-
absent?: number;
|
|
1118
|
-
/**
|
|
1119
|
-
* Number of requirements that changed from failing to passing.
|
|
1120
|
-
*/
|
|
1121
|
-
fixed?: number;
|
|
1122
|
-
/**
|
|
1123
|
-
* Number of requirements that were reorganized without content change.
|
|
1124
|
-
*/
|
|
1125
|
-
moved?: number;
|
|
1126
|
-
/**
|
|
1127
|
-
* Number of requirements present only in the new source.
|
|
1128
|
-
*/
|
|
1129
|
-
new?: number;
|
|
1130
|
-
/**
|
|
1131
|
-
* Number of requirements that changed from passing to failing.
|
|
1132
|
-
*/
|
|
1133
|
-
regressed?: number;
|
|
1134
|
-
/**
|
|
1135
|
-
* Number of requirements with the same effective status.
|
|
1136
|
-
*/
|
|
1137
|
-
unchanged?: number;
|
|
1138
|
-
/**
|
|
1139
|
-
* Number of requirements with a generic status change.
|
|
1140
|
-
*/
|
|
1141
|
-
updated?: number;
|
|
1142
|
-
[property: string]: any;
|
|
1143
|
-
}
|
|
1144
|
-
/**
|
|
1145
|
-
* Summary statistics for a single source in a multi-source comparison.
|
|
1146
|
-
*/
|
|
1147
|
-
export interface PerSourceSummary {
|
|
1148
|
-
/**
|
|
1149
|
-
* Number of requirements present only in the old source.
|
|
1150
|
-
*/
|
|
1151
|
-
absent?: number;
|
|
1152
|
-
/**
|
|
1153
|
-
* Number of requirements that changed from failing to passing.
|
|
1154
|
-
*/
|
|
1155
|
-
fixed?: number;
|
|
1156
|
-
/**
|
|
1157
|
-
* Human-readable label for this source.
|
|
1158
|
-
*/
|
|
1159
|
-
label: string;
|
|
1160
|
-
/**
|
|
1161
|
-
* Number of requirements that were reorganized without content change.
|
|
1162
|
-
*/
|
|
1163
|
-
moved?: number;
|
|
1164
|
-
/**
|
|
1165
|
-
* Number of requirements present only in the new source.
|
|
1166
|
-
*/
|
|
1167
|
-
new?: number;
|
|
1168
|
-
/**
|
|
1169
|
-
* Number of requirements that changed from passing to failing.
|
|
1170
|
-
*/
|
|
1171
|
-
regressed?: number;
|
|
1172
|
-
/**
|
|
1173
|
-
* Zero-based index into the sources array identifying which source this summary is for.
|
|
1174
|
-
*/
|
|
1175
|
-
sourceIndex: number;
|
|
1176
|
-
/**
|
|
1177
|
-
* Number of requirements with the same effective status.
|
|
1178
|
-
*/
|
|
1179
|
-
unchanged?: number;
|
|
1180
|
-
/**
|
|
1181
|
-
* Number of requirements with a generic status change.
|
|
1182
|
-
*/
|
|
1183
|
-
updated?: number;
|
|
1184
|
-
[property: string]: any;
|
|
1185
|
-
}
|