@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.
Files changed (38) hide show
  1. package/README.md +20 -14
  2. package/dist/go/go.mod +2 -2
  3. package/dist/go/hdf.go +570 -210
  4. package/dist/helpers.d.ts +5 -1
  5. package/dist/index.d.ts +27 -52
  6. package/dist/index.js +30 -48
  7. package/dist/schemas/hdf-amendments.schema.json +565 -45
  8. package/dist/schemas/hdf-baseline.schema.json +570 -50
  9. package/dist/schemas/hdf-comparison.schema.json +820 -103
  10. package/dist/schemas/hdf-evidence-package.schema.json +564 -44
  11. package/dist/schemas/hdf-plan.schema.json +571 -50
  12. package/dist/schemas/hdf-results.schema.json +777 -80
  13. package/dist/schemas/hdf-system.schema.json +596 -59
  14. package/dist/ts/hdf.d.ts +3562 -0
  15. package/dist/ts/hdf.js +564 -0
  16. package/dist/ts/hdf.ts +3623 -0
  17. package/package.json +18 -17
  18. package/dist/ts/hdf-amendments.d.ts +0 -474
  19. package/dist/ts/hdf-amendments.js +0 -88
  20. package/dist/ts/hdf-amendments.ts +0 -486
  21. package/dist/ts/hdf-baseline.d.ts +0 -472
  22. package/dist/ts/hdf-baseline.js +0 -58
  23. package/dist/ts/hdf-baseline.ts +0 -483
  24. package/dist/ts/hdf-comparison.d.ts +0 -1185
  25. package/dist/ts/hdf-comparison.js +0 -216
  26. package/dist/ts/hdf-comparison.ts +0 -1210
  27. package/dist/ts/hdf-evidence-package.d.ts +0 -348
  28. package/dist/ts/hdf-evidence-package.js +0 -39
  29. package/dist/ts/hdf-evidence-package.ts +0 -356
  30. package/dist/ts/hdf-plan.d.ts +0 -204
  31. package/dist/ts/hdf-plan.js +0 -23
  32. package/dist/ts/hdf-plan.ts +0 -205
  33. package/dist/ts/hdf-results.d.ts +0 -1511
  34. package/dist/ts/hdf-results.js +0 -194
  35. package/dist/ts/hdf-results.ts +0 -1536
  36. package/dist/ts/hdf-system.d.ts +0 -609
  37. package/dist/ts/hdf-system.js +0 -102
  38. package/dist/ts/hdf-system.ts +0 -617
@@ -1,609 +0,0 @@
1
- /**
2
- * Describes a system's authorization boundary, components, and interconnections. Maps to
3
- * OSCAL SSP system-characteristics and FedRAMP system inventory.
4
- */
5
- export interface HdfSystem {
6
- /**
7
- * Date the current authorization status was granted. ISO 8601 format.
8
- */
9
- authorizationDate?: Date;
10
- /**
11
- * Current Authorization to Operate (ATO) status.
12
- */
13
- authorizationStatus?: AuthorizationStatus;
14
- /**
15
- * Description of the system's authorization boundary. Example: network CIDR blocks, cloud
16
- * VPC IDs, physical locations.
17
- */
18
- boundaryDescription?: string;
19
- /**
20
- * FIPS 199 security categorization (impact level).
21
- */
22
- categorizationLevel?: CategorizationLevel;
23
- /**
24
- * System components within the authorization boundary. Uses the full polymorphic Component
25
- * type with stable identity (componentId), external references, and SBOM support.
26
- */
27
- components: Component[];
28
- /**
29
- * Declares which controls are common, hybrid, or system-specific, and which component
30
- * provides them. Maps to NIST SP 800-53 control designations and OSCAL
31
- * leveraged-authorizations.
32
- */
33
- controlDesignations?: ControlDesignation[];
34
- /**
35
- * Inter-component data flows describing how components communicate. Supports local,
36
- * cross-system, and external flows. Replaces the interconnections[] field.
37
- */
38
- dataFlows?: DataFlow[];
39
- /**
40
- * Description of the system's purpose and mission.
41
- */
42
- description?: string;
43
- /**
44
- * Information about the tool that generated this system document.
45
- */
46
- generator?: Generator;
47
- /**
48
- * System identifier from an authoritative source. Example: eMASS system ID, FedRAMP package
49
- * ID.
50
- */
51
- identifier?: string;
52
- /**
53
- * URI identifying the scheme of the system identifier. Example: 'https://emass.mil',
54
- * 'https://fedramp.gov'.
55
- */
56
- identifierScheme?: string;
57
- /**
58
- * Cryptographic integrity information for verifying this system document has not been
59
- * tampered with.
60
- */
61
- integrity?: Integrity;
62
- /**
63
- * Optional key-value labels for grouping and querying systems.
64
- */
65
- labels?: {
66
- [key: string]: string;
67
- };
68
- /**
69
- * Human-readable system name. Example: 'Enterprise Portal Production'.
70
- */
71
- name: string;
72
- /**
73
- * Team or individual responsible for this system's authorization and compliance. Maps to
74
- * OSCAL responsible-party with role 'system-owner'.
75
- */
76
- owner?: Identity;
77
- /**
78
- * Stable UUID (RFC 4122) for this system. Enables cross-document correlation independent of
79
- * file location. Optional in casual use, expected in production documents.
80
- */
81
- systemId?: string;
82
- /**
83
- * Version of this system document.
84
- */
85
- version?: string;
86
- [property: string]: any;
87
- }
88
- /**
89
- * Current Authorization to Operate (ATO) status.
90
- *
91
- * Authorization to Operate (ATO) status for the system.
92
- */
93
- export declare enum AuthorizationStatus {
94
- Authorized = "authorized",
95
- ConditionallyAuthorized = "conditionallyAuthorized",
96
- Denied = "denied",
97
- NotYetRequested = "notYetRequested",
98
- PendingAuthorization = "pendingAuthorization",
99
- Revoked = "revoked"
100
- }
101
- /**
102
- * FIPS 199 security categorization (impact level).
103
- *
104
- * FIPS 199 security categorization level (impact level).
105
- */
106
- export declare enum CategorizationLevel {
107
- High = "high",
108
- Low = "low",
109
- Moderate = "moderate"
110
- }
111
- /**
112
- * A system component. Uses discriminated union pattern with 'type' field as discriminator.
113
- * Superset of Target with identity, external IDs, and SBOM support.
114
- *
115
- * A physical or virtual server, workstation, or network device.
116
- *
117
- * Base properties shared by all component types. Extends the Target concept with stable
118
- * identity, external references, and SBOM embedding.
119
- *
120
- * A static container image (not running).
121
- *
122
- * A running container instance.
123
- *
124
- * A container orchestration platform (Kubernetes, OpenShift, ECS, etc.).
125
- *
126
- * A cloud provider account (AWS account, Azure subscription, GCP project).
127
- *
128
- * A specific cloud resource (EC2 instance, S3 bucket, Azure VM, etc.).
129
- *
130
- * A code repository (for SAST tools).
131
- *
132
- * A running application or API (for DAST tools).
133
- *
134
- * A software artifact or dependency (for SCA tools).
135
- *
136
- * A network segment or network device.
137
- *
138
- * A database instance.
139
- */
140
- export interface Component {
141
- /**
142
- * Names of baselines that apply to this component.
143
- */
144
- baselineRefs?: string[];
145
- /**
146
- * Stable UUID (RFC 4122) for this component. Required in hdf-system documents, optional in
147
- * hdf-results. Enables cross-document correlation, diffing, and data flow references.
148
- */
149
- componentId?: string;
150
- /**
151
- * Description of this component's role or purpose.
152
- */
153
- description?: string;
154
- /**
155
- * Map of external identifier scheme to value. Well-known schemes: aws (instance ID), azure
156
- * (resource ID), cmdb (asset ID), emass (system ID), cve (CVE ID). Custom schemes are
157
- * allowed.
158
- */
159
- externalIds?: {
160
- [key: string]: string;
161
- };
162
- /**
163
- * System-specific overrides for baseline input values.
164
- */
165
- inputOverrides?: InputOverride[];
166
- /**
167
- * Optional key-value labels for flexible grouping. Well-known keys: system, component,
168
- * environment, region, team. Values must be strings.
169
- */
170
- labels?: {
171
- [key: string]: string;
172
- };
173
- /**
174
- * Human-readable name for this component.
175
- */
176
- name: string;
177
- /**
178
- * Team or individual responsible for this component. Enables per-component ownership when
179
- * different teams manage different parts of a system.
180
- */
181
- owner?: Identity;
182
- /**
183
- * Embedded CycloneDX or SPDX SBOM document representing this component's software
184
- * inventory. The sbomFormat field determines which format constraints apply.
185
- */
186
- sbom?: any;
187
- /**
188
- * Format of the SBOM (embedded or referenced). Required when sbom or sbomRef is present.
189
- */
190
- sbomFormat?: SbomFormat;
191
- /**
192
- * URI reference to an external CycloneDX or SPDX SBOM document for this component. May be a
193
- * relative path, absolute URI, or fragment identifier.
194
- */
195
- sbomRef?: string;
196
- /**
197
- * Label selector to match targets belonging to this component during migration. Targets
198
- * with matching labels are automatically included.
199
- */
200
- targetSelector?: {
201
- [key: string]: string;
202
- };
203
- /**
204
- * Component type discriminator. Same values as Target types.
205
- */
206
- type: BoundaryDescription;
207
- /**
208
- * Fully qualified domain name.
209
- */
210
- fqdn?: string;
211
- /**
212
- * IP address of the host.
213
- */
214
- ipAddress?: string;
215
- /**
216
- * MAC address in colon-separated hexadecimal format.
217
- */
218
- macAddress?: string;
219
- /**
220
- * Operating system name.
221
- */
222
- osName?: string;
223
- /**
224
- * Operating system version.
225
- */
226
- osVersion?: string;
227
- /**
228
- * Image digest for immutable reference.
229
- */
230
- digest?: string;
231
- /**
232
- * Container image ID.
233
- */
234
- imageId?: string;
235
- /**
236
- * Container registry. Example: 'docker.io'.
237
- */
238
- registry?: string;
239
- /**
240
- * Repository name. Example: 'library/nginx'.
241
- */
242
- repository?: string;
243
- /**
244
- * Image tag. Example: '1.25'.
245
- */
246
- tag?: string;
247
- /**
248
- * Running container ID.
249
- */
250
- containerId?: string;
251
- /**
252
- * Image the container was started from.
253
- */
254
- image?: string;
255
- /**
256
- * Container runtime. Example: 'docker', 'containerd', 'cri-o'.
257
- */
258
- runtime?: string;
259
- /**
260
- * Cluster name.
261
- */
262
- clusterName?: string;
263
- /**
264
- * Namespace within the cluster, if applicable.
265
- */
266
- namespace?: string;
267
- /**
268
- * Platform type. Example: 'kubernetes', 'openshift', 'ecs', 'docker-swarm'.
269
- */
270
- platformType?: string;
271
- /**
272
- * Platform version.
273
- *
274
- * Application version.
275
- *
276
- * Package version.
277
- *
278
- * Database version.
279
- */
280
- version?: string;
281
- /**
282
- * Cloud account identifier.
283
- */
284
- accountId?: string;
285
- /**
286
- * Cloud provider.
287
- */
288
- provider?: CloudProvider | null;
289
- /**
290
- * Cloud region, if applicable.
291
- *
292
- * Cloud region where the resource resides.
293
- */
294
- region?: string;
295
- /**
296
- * Amazon Resource Name (AWS only).
297
- */
298
- arn?: string;
299
- /**
300
- * Provider-specific resource identifier.
301
- */
302
- resourceId?: string;
303
- /**
304
- * Type of cloud resource. Example: 'ec2:instance', 's3:bucket'.
305
- */
306
- resourceType?: string;
307
- /**
308
- * Branch that was scanned.
309
- */
310
- branch?: string;
311
- /**
312
- * Commit SHA that was scanned.
313
- */
314
- commit?: string;
315
- /**
316
- * Repository URL.
317
- *
318
- * Application URL (for DAST tools).
319
- */
320
- url?: string;
321
- /**
322
- * Environment. Example: 'production', 'staging', 'development'.
323
- */
324
- environment?: string;
325
- /**
326
- * Package checksum for verification.
327
- */
328
- checksum?: string;
329
- /**
330
- * Package manager. Example: 'npm', 'maven', 'pip', 'nuget'.
331
- */
332
- packageManager?: string;
333
- /**
334
- * Package name.
335
- */
336
- packageName?: string;
337
- /**
338
- * Network CIDR block.
339
- */
340
- cidr?: string;
341
- /**
342
- * Network gateway address.
343
- */
344
- gateway?: string;
345
- /**
346
- * Database engine. Example: 'postgresql', 'mysql', 'oracle', 'mssql'.
347
- */
348
- engine?: string;
349
- /**
350
- * Database host.
351
- */
352
- host?: string;
353
- /**
354
- * Database port.
355
- */
356
- port?: number;
357
- [property: string]: any;
358
- }
359
- /**
360
- * An override of a baseline input value for a specific component. Enables system-specific
361
- * tailoring of baseline parameters.
362
- */
363
- export interface InputOverride {
364
- /**
365
- * Identity of the person or system that approved this override.
366
- */
367
- approvedBy?: Identity;
368
- /**
369
- * Name of the baseline this override applies to. If omitted, applies to all baselines that
370
- * define this input.
371
- */
372
- baselineRef?: string;
373
- /**
374
- * Name of the input being overridden. Must match an Input.name in the referenced baseline.
375
- */
376
- inputName: string;
377
- /**
378
- * Rationale for why this override is needed.
379
- */
380
- justification?: string;
381
- /**
382
- * The overridden value. Should match the type of the original input.
383
- */
384
- value: any;
385
- [property: string]: any;
386
- }
387
- /**
388
- * Identity of the person or system that approved this override.
389
- *
390
- * Represents an identity that performed an action, such as capturing evidence or applying
391
- * an override.
392
- *
393
- * Team or individual responsible for this component. Enables per-component ownership when
394
- * different teams manage different parts of a system.
395
- *
396
- * Team or individual responsible for this system's authorization and compliance. Maps to
397
- * OSCAL responsible-party with role 'system-owner'.
398
- */
399
- export interface Identity {
400
- /**
401
- * Optional description of the identity or identity system, particularly useful when type is
402
- * 'other'.
403
- */
404
- description?: string;
405
- /**
406
- * The identifier value. Example: 'user@example.com', 'jdoe', 'automated-scanner-01'.
407
- */
408
- identifier: string;
409
- /**
410
- * The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
411
- * 'system' for automated systems, 'simple' for basic string identifiers without additional
412
- * classification, or 'other' for custom identity systems.
413
- */
414
- type: Type;
415
- [property: string]: any;
416
- }
417
- /**
418
- * The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
419
- * 'system' for automated systems, 'simple' for basic string identifiers without additional
420
- * classification, or 'other' for custom identity systems.
421
- */
422
- export declare enum Type {
423
- Email = "email",
424
- Other = "other",
425
- Simple = "simple",
426
- System = "system",
427
- Username = "username"
428
- }
429
- export declare enum CloudProvider {
430
- Aws = "aws",
431
- Azure = "azure",
432
- Gcp = "gcp",
433
- Oci = "oci",
434
- Other = "other"
435
- }
436
- /**
437
- * Format of the SBOM (embedded or referenced). Required when sbom or sbomRef is present.
438
- */
439
- export declare enum SbomFormat {
440
- Cyclonedx = "cyclonedx",
441
- Spdx = "spdx"
442
- }
443
- /**
444
- * IP address of the host.
445
- */
446
- export declare enum BoundaryDescription {
447
- Application = "application",
448
- Artifact = "artifact",
449
- CloudAccount = "cloudAccount",
450
- CloudResource = "cloudResource",
451
- ContainerImage = "containerImage",
452
- ContainerInstance = "containerInstance",
453
- ContainerPlatform = "containerPlatform",
454
- Database = "database",
455
- Host = "host",
456
- Network = "network",
457
- Repository = "repository"
458
- }
459
- /**
460
- * Declares a control's designation within a system — whether it is common (provided by
461
- * another component or system), system-specific (implemented locally), or hybrid (shared
462
- * responsibility). Maps to NIST SP 800-53 Appendix C control designations and OSCAL SSP
463
- * by-component provided/inherited semantics.
464
- */
465
- export interface ControlDesignation {
466
- /**
467
- * The control identifier (e.g., 'SC-7', 'AC-2 (1)'). Must match a NIST tag in a baseline
468
- * requirement's tags.
469
- */
470
- controlId: string;
471
- /**
472
- * Justification for this designation — who provides the control, why it's inherited, and
473
- * any relevant authorization references.
474
- */
475
- description: string;
476
- /**
477
- * NIST SP 800-53 control designation. 'common': fully provided by another component or
478
- * system. 'system-specific': implemented by the inheriting component(s) only. 'hybrid':
479
- * shared responsibility between provider and inheritor.
480
- */
481
- designation: Designation;
482
- /**
483
- * componentIds that inherit this control. If omitted, all components in the system inherit
484
- * it.
485
- */
486
- inheritedBy?: string[];
487
- /**
488
- * componentId of a local component that provides this control. Omit when the provider is an
489
- * external system.
490
- */
491
- providedBy?: string;
492
- /**
493
- * Reference to another hdf-system document whose component provides this control. Use when
494
- * the provider is in a different system. Omit when the provider is local.
495
- */
496
- systemRef?: string;
497
- [property: string]: any;
498
- }
499
- /**
500
- * NIST SP 800-53 control designation. 'common': fully provided by another component or
501
- * system. 'system-specific': implemented by the inheriting component(s) only. 'hybrid':
502
- * shared responsibility between provider and inheritor.
503
- */
504
- export declare enum Designation {
505
- Common = "common",
506
- Hybrid = "hybrid",
507
- SystemSpecific = "system-specific"
508
- }
509
- /**
510
- * A data flow between two endpoints. The 'from' endpoint is always a local component; the
511
- * 'to' endpoint can be local, cross-system, or external. Use 'direction' to indicate
512
- * whether data flows one-way or both ways.
513
- */
514
- export interface DataFlow {
515
- /**
516
- * Authentication mechanism used for this connection. Examples: 'mTLS', 'OAuth2', 'API key',
517
- * 'SAML', 'Kerberos'.
518
- */
519
- authentication?: string;
520
- /**
521
- * Human-readable description of this data flow's purpose and the data exchanged.
522
- */
523
- description?: string;
524
- /**
525
- * Data flow direction. 'unidirectional' means data flows from→to only. 'bidirectional'
526
- * means data flows in both directions (e.g., request/response).
527
- */
528
- direction?: Direction;
529
- /**
530
- * UUID of the local component that is one end of this data flow. Always references a
531
- * component in the current system document.
532
- */
533
- from: string;
534
- /**
535
- * Network port number.
536
- */
537
- port?: number;
538
- /**
539
- * Communication protocol. Examples: 'http', 'https', 'grpc', 'ssh', 'jdbc', 'k8s-api',
540
- * 'socket', 'sftp'.
541
- */
542
- protocol?: string;
543
- /**
544
- * The other end of this data flow. Can be a local component (UUID), a cross-system
545
- * component reference, or an external endpoint.
546
- */
547
- to: any;
548
- [property: string]: any;
549
- }
550
- /**
551
- * Data flow direction. 'unidirectional' means data flows from→to only. 'bidirectional'
552
- * means data flows in both directions (e.g., request/response).
553
- */
554
- export declare enum Direction {
555
- Bidirectional = "bidirectional",
556
- Unidirectional = "unidirectional"
557
- }
558
- /**
559
- * Information about the tool that generated this system document.
560
- *
561
- * Information about the tool that generated this HDF file.
562
- */
563
- export interface Generator {
564
- /**
565
- * The name of the software that produced this HDF file. Example: 'gosec-to-hdf'.
566
- */
567
- name: string;
568
- /**
569
- * The version of the tool. Example: '5.22.3'.
570
- */
571
- version: string;
572
- [property: string]: any;
573
- }
574
- /**
575
- * Cryptographic integrity information for verifying this system document has not been
576
- * tampered with.
577
- *
578
- * Cryptographic integrity information for verifying the HDF file has not been tampered
579
- * with. If algorithm is provided, checksum must also be provided, and vice versa.
580
- */
581
- export interface Integrity {
582
- /**
583
- * The hash algorithm used for the checksum.
584
- */
585
- algorithm?: HashAlgorithm;
586
- /**
587
- * The checksum value.
588
- */
589
- checksum?: string;
590
- /**
591
- * Optional cryptographic signature.
592
- */
593
- signature?: string;
594
- /**
595
- * Identifier of who signed this file.
596
- */
597
- signedBy?: string;
598
- [property: string]: any;
599
- }
600
- /**
601
- * The hash algorithm used for the checksum.
602
- *
603
- * Supported cryptographic hash algorithms for checksums and integrity verification.
604
- */
605
- export declare enum HashAlgorithm {
606
- Sha256 = "sha256",
607
- Sha384 = "sha384",
608
- Sha512 = "sha512"
609
- }
@@ -1,102 +0,0 @@
1
- /**
2
- * Current Authorization to Operate (ATO) status.
3
- *
4
- * Authorization to Operate (ATO) status for the system.
5
- */
6
- export var AuthorizationStatus;
7
- (function (AuthorizationStatus) {
8
- AuthorizationStatus["Authorized"] = "authorized";
9
- AuthorizationStatus["ConditionallyAuthorized"] = "conditionallyAuthorized";
10
- AuthorizationStatus["Denied"] = "denied";
11
- AuthorizationStatus["NotYetRequested"] = "notYetRequested";
12
- AuthorizationStatus["PendingAuthorization"] = "pendingAuthorization";
13
- AuthorizationStatus["Revoked"] = "revoked";
14
- })(AuthorizationStatus || (AuthorizationStatus = {}));
15
- /**
16
- * FIPS 199 security categorization (impact level).
17
- *
18
- * FIPS 199 security categorization level (impact level).
19
- */
20
- export var CategorizationLevel;
21
- (function (CategorizationLevel) {
22
- CategorizationLevel["High"] = "high";
23
- CategorizationLevel["Low"] = "low";
24
- CategorizationLevel["Moderate"] = "moderate";
25
- })(CategorizationLevel || (CategorizationLevel = {}));
26
- /**
27
- * The type of identifier. Use 'email' for email addresses, 'username' for user accounts,
28
- * 'system' for automated systems, 'simple' for basic string identifiers without additional
29
- * classification, or 'other' for custom identity systems.
30
- */
31
- export var Type;
32
- (function (Type) {
33
- Type["Email"] = "email";
34
- Type["Other"] = "other";
35
- Type["Simple"] = "simple";
36
- Type["System"] = "system";
37
- Type["Username"] = "username";
38
- })(Type || (Type = {}));
39
- export var CloudProvider;
40
- (function (CloudProvider) {
41
- CloudProvider["Aws"] = "aws";
42
- CloudProvider["Azure"] = "azure";
43
- CloudProvider["Gcp"] = "gcp";
44
- CloudProvider["Oci"] = "oci";
45
- CloudProvider["Other"] = "other";
46
- })(CloudProvider || (CloudProvider = {}));
47
- /**
48
- * Format of the SBOM (embedded or referenced). Required when sbom or sbomRef is present.
49
- */
50
- export var SbomFormat;
51
- (function (SbomFormat) {
52
- SbomFormat["Cyclonedx"] = "cyclonedx";
53
- SbomFormat["Spdx"] = "spdx";
54
- })(SbomFormat || (SbomFormat = {}));
55
- /**
56
- * IP address of the host.
57
- */
58
- export var BoundaryDescription;
59
- (function (BoundaryDescription) {
60
- BoundaryDescription["Application"] = "application";
61
- BoundaryDescription["Artifact"] = "artifact";
62
- BoundaryDescription["CloudAccount"] = "cloudAccount";
63
- BoundaryDescription["CloudResource"] = "cloudResource";
64
- BoundaryDescription["ContainerImage"] = "containerImage";
65
- BoundaryDescription["ContainerInstance"] = "containerInstance";
66
- BoundaryDescription["ContainerPlatform"] = "containerPlatform";
67
- BoundaryDescription["Database"] = "database";
68
- BoundaryDescription["Host"] = "host";
69
- BoundaryDescription["Network"] = "network";
70
- BoundaryDescription["Repository"] = "repository";
71
- })(BoundaryDescription || (BoundaryDescription = {}));
72
- /**
73
- * NIST SP 800-53 control designation. 'common': fully provided by another component or
74
- * system. 'system-specific': implemented by the inheriting component(s) only. 'hybrid':
75
- * shared responsibility between provider and inheritor.
76
- */
77
- export var Designation;
78
- (function (Designation) {
79
- Designation["Common"] = "common";
80
- Designation["Hybrid"] = "hybrid";
81
- Designation["SystemSpecific"] = "system-specific";
82
- })(Designation || (Designation = {}));
83
- /**
84
- * Data flow direction. 'unidirectional' means data flows from→to only. 'bidirectional'
85
- * means data flows in both directions (e.g., request/response).
86
- */
87
- export var Direction;
88
- (function (Direction) {
89
- Direction["Bidirectional"] = "bidirectional";
90
- Direction["Unidirectional"] = "unidirectional";
91
- })(Direction || (Direction = {}));
92
- /**
93
- * The hash algorithm used for the checksum.
94
- *
95
- * Supported cryptographic hash algorithms for checksums and integrity verification.
96
- */
97
- export var HashAlgorithm;
98
- (function (HashAlgorithm) {
99
- HashAlgorithm["Sha256"] = "sha256";
100
- HashAlgorithm["Sha384"] = "sha384";
101
- HashAlgorithm["Sha512"] = "sha512";
102
- })(HashAlgorithm || (HashAlgorithm = {}));