@mitre/hdf-schema 3.2.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 +15 -16
- package/dist/go/hdf.go +398 -134
- package/dist/helpers.d.ts +1 -1
- package/dist/index.d.ts +27 -52
- package/dist/index.js +30 -48
- package/dist/schemas/hdf-amendments.schema.json +466 -45
- package/dist/schemas/hdf-baseline.schema.json +471 -50
- package/dist/schemas/hdf-comparison.schema.json +721 -103
- package/dist/schemas/hdf-evidence-package.schema.json +465 -44
- package/dist/schemas/hdf-plan.schema.json +472 -50
- package/dist/schemas/hdf-results.schema.json +678 -80
- package/dist/schemas/hdf-system.schema.json +497 -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 -549
- package/dist/ts/hdf-baseline.js +0 -110
- package/dist/ts/hdf-baseline.ts +0 -563
- 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 -1588
- package/dist/ts/hdf-results.js +0 -246
- package/dist/ts/hdf-results.ts +0 -1616
- 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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mitre/hdf-schema",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "JSON schemas and multi-language type definitions for Heimdall Data Format (HDF)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -18,32 +18,32 @@
|
|
|
18
18
|
"import": "./dist/helpers.js"
|
|
19
19
|
},
|
|
20
20
|
"./hdf-results": {
|
|
21
|
-
"types": "./dist/ts/hdf
|
|
22
|
-
"import": "./dist/ts/hdf
|
|
21
|
+
"types": "./dist/ts/hdf.d.ts",
|
|
22
|
+
"import": "./dist/ts/hdf.js"
|
|
23
23
|
},
|
|
24
24
|
"./hdf-baseline": {
|
|
25
|
-
"types": "./dist/ts/hdf
|
|
26
|
-
"import": "./dist/ts/hdf
|
|
25
|
+
"types": "./dist/ts/hdf.d.ts",
|
|
26
|
+
"import": "./dist/ts/hdf.js"
|
|
27
27
|
},
|
|
28
28
|
"./hdf-comparison": {
|
|
29
|
-
"types": "./dist/ts/hdf
|
|
30
|
-
"import": "./dist/ts/hdf
|
|
29
|
+
"types": "./dist/ts/hdf.d.ts",
|
|
30
|
+
"import": "./dist/ts/hdf.js"
|
|
31
31
|
},
|
|
32
32
|
"./hdf-system": {
|
|
33
|
-
"types": "./dist/ts/hdf
|
|
34
|
-
"import": "./dist/ts/hdf
|
|
33
|
+
"types": "./dist/ts/hdf.d.ts",
|
|
34
|
+
"import": "./dist/ts/hdf.js"
|
|
35
35
|
},
|
|
36
36
|
"./hdf-plan": {
|
|
37
|
-
"types": "./dist/ts/hdf
|
|
38
|
-
"import": "./dist/ts/hdf
|
|
37
|
+
"types": "./dist/ts/hdf.d.ts",
|
|
38
|
+
"import": "./dist/ts/hdf.js"
|
|
39
39
|
},
|
|
40
40
|
"./hdf-amendments": {
|
|
41
|
-
"types": "./dist/ts/hdf
|
|
42
|
-
"import": "./dist/ts/hdf
|
|
41
|
+
"types": "./dist/ts/hdf.d.ts",
|
|
42
|
+
"import": "./dist/ts/hdf.js"
|
|
43
43
|
},
|
|
44
44
|
"./hdf-evidence-package": {
|
|
45
|
-
"types": "./dist/ts/hdf
|
|
46
|
-
"import": "./dist/ts/hdf
|
|
45
|
+
"types": "./dist/ts/hdf.d.ts",
|
|
46
|
+
"import": "./dist/ts/hdf.js"
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
@@ -59,11 +59,12 @@
|
|
|
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.3.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@hyperjump/json-schema": "^1.17.2",
|
|
66
66
|
"concurrently": "^9.2.1",
|
|
67
|
+
"cpy-cli": "^7.0.0",
|
|
67
68
|
"http-server": "^14.1.1",
|
|
68
69
|
"nodemon": "^3.1.11",
|
|
69
70
|
"quicktype-core": "^23.0.0",
|
|
@@ -83,7 +84,7 @@
|
|
|
83
84
|
],
|
|
84
85
|
"scripts": {
|
|
85
86
|
"build": "pnpm run clean && pnpm run build:schemas && pnpm run build:types && pnpm run build:index",
|
|
86
|
-
"build:schemas": "node --import tsx src/bundle-schemas.ts",
|
|
87
|
+
"build:schemas": "node --import tsx src/bundle-schemas.ts && cpy 'dist/schemas/*.schema.json' '../hdf-validators/go/schemas/' --flat",
|
|
87
88
|
"build:types": "node --import tsx src/generate-types.ts",
|
|
88
89
|
"build:index": "node --import tsx src/create-index.ts",
|
|
89
90
|
"watch:schemas": "nodemon --watch src/schemas --ext json --exec 'tsx src/bundle-schemas.ts'",
|
|
@@ -1,474 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Waivers, attestations, and POA&Ms that modify requirement compliance status or impact.
|
|
3
|
-
* Amendments are standalone documents that can be applied to results via merge operations.
|
|
4
|
-
*/
|
|
5
|
-
export interface HdfAmendments {
|
|
6
|
-
/**
|
|
7
|
-
* Unique identifier for this amendments document. Useful for cross-referencing when
|
|
8
|
-
* multiple amendment documents target the same results.
|
|
9
|
-
*/
|
|
10
|
-
amendmentId?: string;
|
|
11
|
-
/**
|
|
12
|
-
* Default identity of who created this amendments document. Individual overrides may
|
|
13
|
-
* specify their own appliedBy.
|
|
14
|
-
*/
|
|
15
|
-
appliedBy?: Identity;
|
|
16
|
-
/**
|
|
17
|
-
* Identity of the authorizing official who approved these amendments.
|
|
18
|
-
*/
|
|
19
|
-
approvedBy?: Identity;
|
|
20
|
-
/**
|
|
21
|
-
* Description of the amendments' purpose and scope.
|
|
22
|
-
*/
|
|
23
|
-
description?: string;
|
|
24
|
-
/**
|
|
25
|
-
* Information about the tool that generated this document.
|
|
26
|
-
*/
|
|
27
|
-
generator?: Generator;
|
|
28
|
-
/**
|
|
29
|
-
* Cryptographic integrity information for verifying this amendments document has not been
|
|
30
|
-
* tampered with.
|
|
31
|
-
*/
|
|
32
|
-
integrity?: Integrity;
|
|
33
|
-
/**
|
|
34
|
-
* Optional key-value labels for grouping and querying amendments.
|
|
35
|
-
*/
|
|
36
|
-
labels?: {
|
|
37
|
-
[key: string]: string;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Human-readable name for this amendments document. Example: 'Portal Q1 2026 Waivers'.
|
|
41
|
-
*/
|
|
42
|
-
name: string;
|
|
43
|
-
/**
|
|
44
|
-
* The set of amendments (waivers, attestations, POA&Ms, and other overrides).
|
|
45
|
-
*/
|
|
46
|
-
overrides: StandaloneOverride[];
|
|
47
|
-
/**
|
|
48
|
-
* Document-level digital signature covering all amendments.
|
|
49
|
-
*/
|
|
50
|
-
signature?: Signature;
|
|
51
|
-
/**
|
|
52
|
-
* URI to the hdf-system document these amendments apply to.
|
|
53
|
-
*/
|
|
54
|
-
systemRef?: string;
|
|
55
|
-
/**
|
|
56
|
-
* Version of this amendments document.
|
|
57
|
-
*/
|
|
58
|
-
version?: string;
|
|
59
|
-
[property: string]: any;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Default identity of who created this amendments document. Individual overrides may
|
|
63
|
-
* specify their own appliedBy.
|
|
64
|
-
*
|
|
65
|
-
* Represents an identity that performed an action, such as capturing evidence or applying
|
|
66
|
-
* an override.
|
|
67
|
-
*
|
|
68
|
-
* Identity of the authorizing official who approved these amendments.
|
|
69
|
-
*
|
|
70
|
-
* Identity of who applied this amendment.
|
|
71
|
-
*
|
|
72
|
-
* Identity of who or what captured this evidence.
|
|
73
|
-
*
|
|
74
|
-
* Identity of who completed this milestone.
|
|
75
|
-
*
|
|
76
|
-
* The identity that created this signature.
|
|
77
|
-
*/
|
|
78
|
-
export interface Identity {
|
|
79
|
-
/**
|
|
80
|
-
* Optional description of the identity or identity system, particularly useful when type is
|
|
81
|
-
* 'other'.
|
|
82
|
-
*/
|
|
83
|
-
description?: string;
|
|
84
|
-
/**
|
|
85
|
-
* The identifier value. Example: 'user@example.com', 'jdoe', 'automated-scanner-01'.
|
|
86
|
-
*/
|
|
87
|
-
identifier: string;
|
|
88
|
-
/**
|
|
89
|
-
* The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
|
|
90
|
-
* 'system' for automated systems, 'simple' for basic string identifiers without additional
|
|
91
|
-
* classification, or 'other' for custom identity systems.
|
|
92
|
-
*/
|
|
93
|
-
type: AppliedByType;
|
|
94
|
-
[property: string]: any;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
|
|
98
|
-
* 'system' for automated systems, 'simple' for basic string identifiers without additional
|
|
99
|
-
* classification, or 'other' for custom identity systems.
|
|
100
|
-
*/
|
|
101
|
-
export declare enum AppliedByType {
|
|
102
|
-
Email = "email",
|
|
103
|
-
Other = "other",
|
|
104
|
-
Simple = "simple",
|
|
105
|
-
System = "system",
|
|
106
|
-
Username = "username"
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Information about the tool that generated this document.
|
|
110
|
-
*
|
|
111
|
-
* Information about the tool that generated this HDF file.
|
|
112
|
-
*/
|
|
113
|
-
export interface Generator {
|
|
114
|
-
/**
|
|
115
|
-
* The name of the software that produced this HDF file. Example: 'gosec-to-hdf'.
|
|
116
|
-
*/
|
|
117
|
-
name: string;
|
|
118
|
-
/**
|
|
119
|
-
* The version of the tool. Example: '5.22.3'.
|
|
120
|
-
*/
|
|
121
|
-
version: string;
|
|
122
|
-
[property: string]: any;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Cryptographic integrity information for verifying this amendments document has not been
|
|
126
|
-
* tampered with.
|
|
127
|
-
*
|
|
128
|
-
* Cryptographic integrity information for verifying the HDF file has not been tampered
|
|
129
|
-
* with. If algorithm is provided, checksum must also be provided, and vice versa.
|
|
130
|
-
*/
|
|
131
|
-
export interface Integrity {
|
|
132
|
-
/**
|
|
133
|
-
* The hash algorithm used for the checksum.
|
|
134
|
-
*/
|
|
135
|
-
algorithm?: HashAlgorithm;
|
|
136
|
-
/**
|
|
137
|
-
* The checksum value.
|
|
138
|
-
*/
|
|
139
|
-
checksum?: string;
|
|
140
|
-
/**
|
|
141
|
-
* Optional cryptographic signature.
|
|
142
|
-
*/
|
|
143
|
-
signature?: string;
|
|
144
|
-
/**
|
|
145
|
-
* Identifier of who signed this file.
|
|
146
|
-
*/
|
|
147
|
-
signedBy?: string;
|
|
148
|
-
[property: string]: any;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* The hash algorithm used for the checksum.
|
|
152
|
-
*
|
|
153
|
-
* Supported cryptographic hash algorithms for checksums and integrity verification.
|
|
154
|
-
*/
|
|
155
|
-
export declare enum HashAlgorithm {
|
|
156
|
-
Sha256 = "sha256",
|
|
157
|
-
Sha384 = "sha384",
|
|
158
|
-
Sha512 = "sha512"
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* A standalone amendment that modifies a requirement's compliance status and/or impact
|
|
162
|
-
* score. At least one of status or impact must be set. Extends the inline Override concept
|
|
163
|
-
* with requirementId and baselineRef for use outside of results documents.
|
|
164
|
-
*/
|
|
165
|
-
export interface StandaloneOverride {
|
|
166
|
-
/**
|
|
167
|
-
* When this amendment was applied. ISO 8601 format.
|
|
168
|
-
*/
|
|
169
|
-
appliedAt: Date;
|
|
170
|
-
/**
|
|
171
|
-
* Identity of who applied this amendment.
|
|
172
|
-
*/
|
|
173
|
-
appliedBy: Identity;
|
|
174
|
-
/**
|
|
175
|
-
* Name of the baseline containing the requirement. Required when the system has multiple
|
|
176
|
-
* baselines with potentially overlapping requirement IDs.
|
|
177
|
-
*/
|
|
178
|
-
baselineRef?: string;
|
|
179
|
-
/**
|
|
180
|
-
* componentId of the component this amendment is scoped to. When set, the amendment only
|
|
181
|
-
* applies to the specified component. When omitted, the amendment applies system-wide.
|
|
182
|
-
*/
|
|
183
|
-
componentRef?: string;
|
|
184
|
-
/**
|
|
185
|
-
* Supporting evidence (screenshots, logs, URLs, documents).
|
|
186
|
-
*/
|
|
187
|
-
evidence?: Evidence[];
|
|
188
|
-
/**
|
|
189
|
-
* When this amendment expires and must be reviewed. No permanent amendments. ISO 8601
|
|
190
|
-
* format.
|
|
191
|
-
*/
|
|
192
|
-
expiresAt: Date;
|
|
193
|
-
/**
|
|
194
|
-
* Override to the requirement's impact score. At least one of status or impact must be set.
|
|
195
|
-
*/
|
|
196
|
-
impact?: ImpactOverride;
|
|
197
|
-
/**
|
|
198
|
-
* componentId of the local component that provides this control. Set when the provider is
|
|
199
|
-
* in the same system. Omit for external or cross-system providers; the reason field
|
|
200
|
-
* explains the source. Primarily used with type 'inherited'.
|
|
201
|
-
*/
|
|
202
|
-
inheritedFrom?: string;
|
|
203
|
-
/**
|
|
204
|
-
* Remediation milestones (primarily for POA&M type amendments).
|
|
205
|
-
*/
|
|
206
|
-
milestones?: Milestone[];
|
|
207
|
-
/**
|
|
208
|
-
* Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null
|
|
209
|
-
* for the first amendment.
|
|
210
|
-
*/
|
|
211
|
-
previousChecksum?: Checksum;
|
|
212
|
-
/**
|
|
213
|
-
* Justification for this amendment.
|
|
214
|
-
*/
|
|
215
|
-
reason: string;
|
|
216
|
-
/**
|
|
217
|
-
* The ID of the requirement being amended. Must match a requirement ID in the referenced
|
|
218
|
-
* baseline.
|
|
219
|
-
*/
|
|
220
|
-
requirementId: string;
|
|
221
|
-
/**
|
|
222
|
-
* Digital signature for non-repudiation.
|
|
223
|
-
*/
|
|
224
|
-
signature?: Signature;
|
|
225
|
-
/**
|
|
226
|
-
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
227
|
-
*/
|
|
228
|
-
status?: ResultStatus;
|
|
229
|
-
/**
|
|
230
|
-
* The type of amendment.
|
|
231
|
-
*/
|
|
232
|
-
type: OverrideType;
|
|
233
|
-
[property: string]: any;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Supporting evidence for a finding or override, such as screenshots, code samples, log
|
|
237
|
-
* excerpts, or URLs.
|
|
238
|
-
*/
|
|
239
|
-
export interface Evidence {
|
|
240
|
-
/**
|
|
241
|
-
* Timestamp when this evidence was captured. ISO 8601 format.
|
|
242
|
-
*/
|
|
243
|
-
capturedAt?: Date;
|
|
244
|
-
/**
|
|
245
|
-
* Identity of who or what captured this evidence.
|
|
246
|
-
*/
|
|
247
|
-
capturedBy?: Identity;
|
|
248
|
-
/**
|
|
249
|
-
* The evidence content. For screenshots/files: base64-encoded data or URL. For code/logs:
|
|
250
|
-
* the raw text. For URLs: the URL string.
|
|
251
|
-
*/
|
|
252
|
-
data: string;
|
|
253
|
-
/**
|
|
254
|
-
* Human-readable description of what this evidence shows.
|
|
255
|
-
*/
|
|
256
|
-
description?: string;
|
|
257
|
-
/**
|
|
258
|
-
* Encoding used for the data. Example: 'base64', 'utf-8'.
|
|
259
|
-
*/
|
|
260
|
-
encoding?: string;
|
|
261
|
-
/**
|
|
262
|
-
* MIME type of the evidence. Example: 'image/png', 'text/plain', 'application/json'.
|
|
263
|
-
*/
|
|
264
|
-
mimeType?: string;
|
|
265
|
-
/**
|
|
266
|
-
* Size of the evidence data in bytes.
|
|
267
|
-
*/
|
|
268
|
-
size?: number;
|
|
269
|
-
/**
|
|
270
|
-
* The type of evidence being provided.
|
|
271
|
-
*/
|
|
272
|
-
type: EvidenceType;
|
|
273
|
-
[property: string]: any;
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* The type of evidence being provided.
|
|
277
|
-
*/
|
|
278
|
-
export declare enum EvidenceType {
|
|
279
|
-
Code = "code",
|
|
280
|
-
File = "file",
|
|
281
|
-
Log = "log",
|
|
282
|
-
Other = "other",
|
|
283
|
-
Screenshot = "screenshot",
|
|
284
|
-
URL = "url"
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* Override to the requirement's impact score. At least one of status or impact must be
|
|
288
|
-
* set.
|
|
289
|
-
*
|
|
290
|
-
* An override to the requirement's impact score. The prior impact is the original result
|
|
291
|
-
* value or the preceding override in the chain.
|
|
292
|
-
*/
|
|
293
|
-
export interface ImpactOverride {
|
|
294
|
-
/**
|
|
295
|
-
* The overridden impact score (0.0–1.0).
|
|
296
|
-
*/
|
|
297
|
-
value: number;
|
|
298
|
-
[property: string]: any;
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* A milestone or task within a POA&M remediation plan.
|
|
302
|
-
*/
|
|
303
|
-
export interface Milestone {
|
|
304
|
-
/**
|
|
305
|
-
* Actual completion timestamp. ISO 8601 format.
|
|
306
|
-
*/
|
|
307
|
-
completedAt?: Date;
|
|
308
|
-
/**
|
|
309
|
-
* Identity of who completed this milestone.
|
|
310
|
-
*/
|
|
311
|
-
completedBy?: Identity;
|
|
312
|
-
/**
|
|
313
|
-
* Description of this milestone or task.
|
|
314
|
-
*/
|
|
315
|
-
description: string;
|
|
316
|
-
/**
|
|
317
|
-
* Estimated completion date. ISO 8601 format.
|
|
318
|
-
*/
|
|
319
|
-
estimatedCompletion: Date;
|
|
320
|
-
/**
|
|
321
|
-
* Current status of this milestone.
|
|
322
|
-
*/
|
|
323
|
-
status: Status;
|
|
324
|
-
[property: string]: any;
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
|
-
* Current status of this milestone.
|
|
328
|
-
*/
|
|
329
|
-
export declare enum Status {
|
|
330
|
-
Completed = "completed",
|
|
331
|
-
InProgress = "inProgress",
|
|
332
|
-
Pending = "pending"
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null
|
|
336
|
-
* for the first amendment.
|
|
337
|
-
*
|
|
338
|
-
* Cryptographic checksum for baseline integrity verification.
|
|
339
|
-
*/
|
|
340
|
-
export interface Checksum {
|
|
341
|
-
/**
|
|
342
|
-
* The hash algorithm used for the checksum.
|
|
343
|
-
*/
|
|
344
|
-
algorithm: HashAlgorithm;
|
|
345
|
-
/**
|
|
346
|
-
* The checksum value.
|
|
347
|
-
*/
|
|
348
|
-
value: string;
|
|
349
|
-
[property: string]: any;
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* Digital signature for non-repudiation.
|
|
353
|
-
*
|
|
354
|
-
* A digital signature following W3C Data Integrity Proofs pattern. Supports hardware
|
|
355
|
-
* security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic
|
|
356
|
-
* signing methods via JWK, PEM, or Base58 key formats.
|
|
357
|
-
*
|
|
358
|
-
* Document-level digital signature covering all amendments.
|
|
359
|
-
*/
|
|
360
|
-
export interface Signature {
|
|
361
|
-
/**
|
|
362
|
-
* Challenge value from the verifier, used in challenge-response authentication.
|
|
363
|
-
*/
|
|
364
|
-
challenge?: string;
|
|
365
|
-
/**
|
|
366
|
-
* When the signature was created. ISO 8601 format.
|
|
367
|
-
*/
|
|
368
|
-
created: Date;
|
|
369
|
-
/**
|
|
370
|
-
* The identity that created this signature.
|
|
371
|
-
*/
|
|
372
|
-
creator: Identity;
|
|
373
|
-
/**
|
|
374
|
-
* Domain restriction for the signature, prevents cross-domain replay attacks.
|
|
375
|
-
*/
|
|
376
|
-
domain?: string;
|
|
377
|
-
/**
|
|
378
|
-
* Random value to prevent replay attacks.
|
|
379
|
-
*/
|
|
380
|
-
nonce?: string;
|
|
381
|
-
/**
|
|
382
|
-
* The purpose of this signature. Example: 'attestation', 'authentication',
|
|
383
|
-
* 'assertionMethod'.
|
|
384
|
-
*/
|
|
385
|
-
proofPurpose: string;
|
|
386
|
-
/**
|
|
387
|
-
* The base64-encoded or base58-encoded signature value.
|
|
388
|
-
*/
|
|
389
|
-
signatureValue: string;
|
|
390
|
-
/**
|
|
391
|
-
* The signature suite type. Example: 'JsonWebSignature2020', 'RsaSignature2018',
|
|
392
|
-
* 'Ed25519Signature2020'.
|
|
393
|
-
*/
|
|
394
|
-
type: string;
|
|
395
|
-
/**
|
|
396
|
-
* The verification method containing the public key for signature verification.
|
|
397
|
-
*/
|
|
398
|
-
verificationMethod: VerificationMethod;
|
|
399
|
-
[property: string]: any;
|
|
400
|
-
}
|
|
401
|
-
/**
|
|
402
|
-
* The verification method containing the public key for signature verification.
|
|
403
|
-
*
|
|
404
|
-
* Verification method containing the public key needed to verify a digital signature.
|
|
405
|
-
* Supports multiple key formats including JWK (for RSA, EC), PEM, and Base58.
|
|
406
|
-
*/
|
|
407
|
-
export interface VerificationMethod {
|
|
408
|
-
/**
|
|
409
|
-
* The entity that controls this verification method. Can be a DID, URI, or other identifier.
|
|
410
|
-
*/
|
|
411
|
-
controller: string;
|
|
412
|
-
/**
|
|
413
|
-
* Public key in Base58 format, commonly used with Ed25519 keys.
|
|
414
|
-
*/
|
|
415
|
-
publicKeyBase58?: string;
|
|
416
|
-
/**
|
|
417
|
-
* Public key in JSON Web Key format.
|
|
418
|
-
*/
|
|
419
|
-
publicKeyJwk?: {
|
|
420
|
-
[key: string]: any;
|
|
421
|
-
};
|
|
422
|
-
/**
|
|
423
|
-
* Public key in PEM format. Example: '-----BEGIN PUBLIC KEY-----...-----END PUBLIC
|
|
424
|
-
* KEY-----'.
|
|
425
|
-
*/
|
|
426
|
-
publicKeyPem?: string;
|
|
427
|
-
/**
|
|
428
|
-
* The type of verification method. Example: 'JsonWebKey2020', 'RsaVerificationKey2018',
|
|
429
|
-
* 'Ed25519VerificationKey2020'.
|
|
430
|
-
*/
|
|
431
|
-
type: string;
|
|
432
|
-
[property: string]: any;
|
|
433
|
-
}
|
|
434
|
-
/**
|
|
435
|
-
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
436
|
-
*
|
|
437
|
-
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
438
|
-
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
439
|
-
* requires manual verification).
|
|
440
|
-
*/
|
|
441
|
-
export declare enum ResultStatus {
|
|
442
|
-
Error = "error",
|
|
443
|
-
Failed = "failed",
|
|
444
|
-
NotApplicable = "notApplicable",
|
|
445
|
-
NotReviewed = "notReviewed",
|
|
446
|
-
Passed = "passed"
|
|
447
|
-
}
|
|
448
|
-
/**
|
|
449
|
-
* The type of amendment.
|
|
450
|
-
*
|
|
451
|
-
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
|
|
452
|
-
* accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
|
|
453
|
-
* remediation tracked (no status change). 'inherited': control provided by another
|
|
454
|
-
* component or system. 'falsePositive': scanner incorrectly identified a finding — for
|
|
455
|
-
* compliance scans (STIG, CIS), the check actually passes, so status is typically set to
|
|
456
|
-
* 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
|
|
457
|
-
* this system, so status is typically set to 'notApplicable'. The disposition field on the
|
|
458
|
-
* requirement distinguishes false positives from genuinely not-applicable findings.
|
|
459
|
-
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
460
|
-
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
461
|
-
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
462
|
-
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
463
|
-
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
464
|
-
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
465
|
-
*/
|
|
466
|
-
export declare enum OverrideType {
|
|
467
|
-
Attestation = "attestation",
|
|
468
|
-
FalsePositive = "falsePositive",
|
|
469
|
-
Inherited = "inherited",
|
|
470
|
-
OperationalRequirement = "operationalRequirement",
|
|
471
|
-
Poam = "poam",
|
|
472
|
-
RiskAdjustment = "riskAdjustment",
|
|
473
|
-
Waiver = "waiver"
|
|
474
|
-
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
|
|
3
|
-
* 'system' for automated systems, 'simple' for basic string identifiers without additional
|
|
4
|
-
* classification, or 'other' for custom identity systems.
|
|
5
|
-
*/
|
|
6
|
-
export var AppliedByType;
|
|
7
|
-
(function (AppliedByType) {
|
|
8
|
-
AppliedByType["Email"] = "email";
|
|
9
|
-
AppliedByType["Other"] = "other";
|
|
10
|
-
AppliedByType["Simple"] = "simple";
|
|
11
|
-
AppliedByType["System"] = "system";
|
|
12
|
-
AppliedByType["Username"] = "username";
|
|
13
|
-
})(AppliedByType || (AppliedByType = {}));
|
|
14
|
-
/**
|
|
15
|
-
* The hash algorithm used for the checksum.
|
|
16
|
-
*
|
|
17
|
-
* Supported cryptographic hash algorithms for checksums and integrity verification.
|
|
18
|
-
*/
|
|
19
|
-
export var HashAlgorithm;
|
|
20
|
-
(function (HashAlgorithm) {
|
|
21
|
-
HashAlgorithm["Sha256"] = "sha256";
|
|
22
|
-
HashAlgorithm["Sha384"] = "sha384";
|
|
23
|
-
HashAlgorithm["Sha512"] = "sha512";
|
|
24
|
-
})(HashAlgorithm || (HashAlgorithm = {}));
|
|
25
|
-
/**
|
|
26
|
-
* The type of evidence being provided.
|
|
27
|
-
*/
|
|
28
|
-
export var EvidenceType;
|
|
29
|
-
(function (EvidenceType) {
|
|
30
|
-
EvidenceType["Code"] = "code";
|
|
31
|
-
EvidenceType["File"] = "file";
|
|
32
|
-
EvidenceType["Log"] = "log";
|
|
33
|
-
EvidenceType["Other"] = "other";
|
|
34
|
-
EvidenceType["Screenshot"] = "screenshot";
|
|
35
|
-
EvidenceType["URL"] = "url";
|
|
36
|
-
})(EvidenceType || (EvidenceType = {}));
|
|
37
|
-
/**
|
|
38
|
-
* Current status of this milestone.
|
|
39
|
-
*/
|
|
40
|
-
export var Status;
|
|
41
|
-
(function (Status) {
|
|
42
|
-
Status["Completed"] = "completed";
|
|
43
|
-
Status["InProgress"] = "inProgress";
|
|
44
|
-
Status["Pending"] = "pending";
|
|
45
|
-
})(Status || (Status = {}));
|
|
46
|
-
/**
|
|
47
|
-
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
48
|
-
*
|
|
49
|
-
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
50
|
-
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
51
|
-
* requires manual verification).
|
|
52
|
-
*/
|
|
53
|
-
export var ResultStatus;
|
|
54
|
-
(function (ResultStatus) {
|
|
55
|
-
ResultStatus["Error"] = "error";
|
|
56
|
-
ResultStatus["Failed"] = "failed";
|
|
57
|
-
ResultStatus["NotApplicable"] = "notApplicable";
|
|
58
|
-
ResultStatus["NotReviewed"] = "notReviewed";
|
|
59
|
-
ResultStatus["Passed"] = "passed";
|
|
60
|
-
})(ResultStatus || (ResultStatus = {}));
|
|
61
|
-
/**
|
|
62
|
-
* The type of amendment.
|
|
63
|
-
*
|
|
64
|
-
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
|
|
65
|
-
* accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
|
|
66
|
-
* remediation tracked (no status change). 'inherited': control provided by another
|
|
67
|
-
* component or system. 'falsePositive': scanner incorrectly identified a finding — for
|
|
68
|
-
* compliance scans (STIG, CIS), the check actually passes, so status is typically set to
|
|
69
|
-
* 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
|
|
70
|
-
* this system, so status is typically set to 'notApplicable'. The disposition field on the
|
|
71
|
-
* requirement distinguishes false positives from genuinely not-applicable findings.
|
|
72
|
-
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
73
|
-
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
74
|
-
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
75
|
-
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
76
|
-
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
77
|
-
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
78
|
-
*/
|
|
79
|
-
export var OverrideType;
|
|
80
|
-
(function (OverrideType) {
|
|
81
|
-
OverrideType["Attestation"] = "attestation";
|
|
82
|
-
OverrideType["FalsePositive"] = "falsePositive";
|
|
83
|
-
OverrideType["Inherited"] = "inherited";
|
|
84
|
-
OverrideType["OperationalRequirement"] = "operationalRequirement";
|
|
85
|
-
OverrideType["Poam"] = "poam";
|
|
86
|
-
OverrideType["RiskAdjustment"] = "riskAdjustment";
|
|
87
|
-
OverrideType["Waiver"] = "waiver";
|
|
88
|
-
})(OverrideType || (OverrideType = {}));
|