@portll/cobolwork 0.2.76 → 0.2.140
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 +66 -14
- package/bin/cobolwork.mjs +126 -9
- package/lib/arith.mjs +235 -0
- package/lib/baseline.mjs +5 -0
- package/lib/build.mjs +112 -30
- package/lib/capabilities.mjs +12 -7
- package/lib/card.mjs +18 -0
- package/lib/cics-commands.mjs +136 -125
- package/lib/consequence.mjs +29 -0
- package/lib/control.mjs +1169 -91
- package/lib/csd.mjs +17 -2
- package/lib/dataflow.mjs +276 -126
- package/lib/embedded-sql.mjs +110 -0
- package/lib/enterprise-options.mjs +255 -0
- package/lib/equivalence.mjs +124 -0
- package/lib/evidence/cli.mjs +65 -0
- package/lib/evidence/journal.mjs +94 -0
- package/lib/evidence/record.mjs +110 -0
- package/lib/evidence/run.mjs +111 -0
- package/lib/evidence/seal.mjs +177 -0
- package/lib/evidence/slsa.mjs +64 -0
- package/lib/evidence/sshsig.mjs +172 -0
- package/lib/evidence/store.mjs +170 -0
- package/lib/evidence/verify.mjs +167 -0
- package/lib/explain.mjs +9 -5
- package/lib/exploitability.mjs +263 -0
- package/lib/ftp.mjs +136 -0
- package/lib/ironwork.mjs +109 -0
- package/lib/jcl.mjs +27 -7
- package/lib/kernel/findings.mjs +11 -0
- package/lib/kernel/registry.mjs +4 -0
- package/lib/layout.mjs +202 -0
- package/lib/option-diff.mjs +49 -0
- package/lib/options.mjs +109 -46
- package/lib/parser.mjs +80 -209
- package/lib/policy.mjs +8 -3
- package/lib/precompile.mjs +5 -84
- package/lib/reach.mjs +29 -12
- package/lib/revision.json +1 -1
- package/lib/sarif.mjs +1 -0
- package/lib/sbom.mjs +235 -0
- package/lib/scan.mjs +93 -27
- package/lib/sets/cics.mjs +119 -2
- package/lib/sets/copybook.mjs +2 -1
- package/lib/sets/flow.mjs +82 -2
- package/lib/sets/hidden.mjs +4 -8
- package/lib/sets/jcl.mjs +70 -106
- package/lib/sets/recon.mjs +2 -1
- package/lib/sets/semantics.mjs +377 -0
- package/lib/sets/web.mjs +34 -10
- package/lib/sets/zowe.mjs +246 -0
- package/lib/sources.mjs +10 -0
- package/lib/tui/app.mjs +31 -13
- package/lib/tui/model.mjs +17 -2
- package/lib/utilities.mjs +229 -15
- package/lib/verify.mjs +128 -0
- package/package.json +1 -1
- package/rules/compliance-dora.json +507 -0
- package/rules/compliance-ffiec.json +507 -0
- package/rules/compliance-nist80053.json +507 -0
- package/schema/cobolwork.policy.schema.json +94 -16
|
@@ -5,35 +5,83 @@
|
|
|
5
5
|
"description": "Which findings stop a build, which run-time checks the compiler must generate, and what an incomplete scan means. docs/spec/build-gate.md section 4. lib/policy.mjs validates the same shape and also refuses a rule id cobolwork does not declare.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
|
-
"required": [
|
|
8
|
+
"required": [
|
|
9
|
+
"policyVersion"
|
|
10
|
+
],
|
|
9
11
|
"properties": {
|
|
10
|
-
"_comment": {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
12
|
+
"_comment": {
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"policyVersion": {
|
|
16
|
+
"const": 1
|
|
17
|
+
},
|
|
18
|
+
"block": {
|
|
19
|
+
"$ref": "#/$defs/tier",
|
|
20
|
+
"description": "A finding at or above this tier blocks. Default high."
|
|
21
|
+
},
|
|
22
|
+
"always": {
|
|
23
|
+
"$ref": "#/$defs/tier",
|
|
24
|
+
"description": "In ratchet mode, a finding at or above this tier blocks whether or not the change introduced it. Default crit."
|
|
25
|
+
},
|
|
14
26
|
"classes": {
|
|
15
27
|
"type": "array",
|
|
16
|
-
"items": {
|
|
28
|
+
"items": {
|
|
29
|
+
"enum": [
|
|
30
|
+
"privilege-escalation",
|
|
31
|
+
"data-mutation"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
17
34
|
"uniqueItems": true,
|
|
18
35
|
"description": "A finding in one of these consequence classes blocks at any tier. Default both."
|
|
19
36
|
},
|
|
20
37
|
"rules": {
|
|
21
38
|
"type": "object",
|
|
22
|
-
"additionalProperties": {
|
|
39
|
+
"additionalProperties": {
|
|
40
|
+
"enum": [
|
|
41
|
+
"block",
|
|
42
|
+
"warn"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
23
45
|
"description": "Per rule id: block whatever its tier, or warn whatever its tier or class."
|
|
24
46
|
},
|
|
25
|
-
"coverage": {
|
|
26
|
-
|
|
47
|
+
"coverage": {
|
|
48
|
+
"enum": [
|
|
49
|
+
"block",
|
|
50
|
+
"warn"
|
|
51
|
+
],
|
|
52
|
+
"description": "Incomplete coverage makes the build undecided (block) or is reported (warn). Default block."
|
|
53
|
+
},
|
|
54
|
+
"options": {
|
|
55
|
+
"enum": [
|
|
56
|
+
"block",
|
|
57
|
+
"warn"
|
|
58
|
+
],
|
|
59
|
+
"description": "A build without a required run-time check fails, and options nothing declares make it undecided (block); or both are reported and the build passes relaxed (warn). An option forbid names, and a check the change removes, fail either way. Default warn."
|
|
60
|
+
},
|
|
27
61
|
"waivers": {
|
|
28
62
|
"type": "object",
|
|
29
63
|
"additionalProperties": false,
|
|
30
|
-
"required": [
|
|
31
|
-
|
|
64
|
+
"required": [
|
|
65
|
+
"maxDays"
|
|
66
|
+
],
|
|
67
|
+
"properties": {
|
|
68
|
+
"maxDays": {
|
|
69
|
+
"type": "integer",
|
|
70
|
+
"minimum": 1
|
|
71
|
+
}
|
|
72
|
+
},
|
|
32
73
|
"description": "A waiver written with an expiry further off than maxDays covers nothing. Default 180."
|
|
33
74
|
},
|
|
34
75
|
"checks": {
|
|
35
76
|
"type": "array",
|
|
36
|
-
"items": {
|
|
77
|
+
"items": {
|
|
78
|
+
"enum": [
|
|
79
|
+
"subscript",
|
|
80
|
+
"reference-modification",
|
|
81
|
+
"numeric-data",
|
|
82
|
+
"argument-length"
|
|
83
|
+
]
|
|
84
|
+
},
|
|
37
85
|
"uniqueItems": true,
|
|
38
86
|
"description": "The run-time checks every program must be compiled with. Default subscript and reference-modification."
|
|
39
87
|
},
|
|
@@ -41,14 +89,44 @@
|
|
|
41
89
|
"type": "object",
|
|
42
90
|
"additionalProperties": false,
|
|
43
91
|
"properties": {
|
|
44
|
-
"enterprise": {
|
|
45
|
-
|
|
92
|
+
"enterprise": {
|
|
93
|
+
"$ref": "#/$defs/options"
|
|
94
|
+
},
|
|
95
|
+
"gnucobol": {
|
|
96
|
+
"$ref": "#/$defs/options"
|
|
97
|
+
},
|
|
98
|
+
"gcobol": {
|
|
99
|
+
"$ref": "#/$defs/options"
|
|
100
|
+
}
|
|
46
101
|
},
|
|
47
102
|
"description": "Options a build must not pass, beyond those that turn a required check off."
|
|
103
|
+
},
|
|
104
|
+
"requireEquivalence": {
|
|
105
|
+
"enum": [
|
|
106
|
+
"never",
|
|
107
|
+
"machineAuthored",
|
|
108
|
+
"always"
|
|
109
|
+
],
|
|
110
|
+
"description": "When every program a change edits, or whose copybooks it edits, needs an ironwork equivalence statement passed to build --equivalence: never, only when a commit in the change names a code assistant or bot as author, committer or co-author (machineAuthored), or always. The stricter of the floor and the repository applies. Default never."
|
|
48
111
|
}
|
|
49
112
|
},
|
|
50
113
|
"$defs": {
|
|
51
|
-
"tier": {
|
|
52
|
-
|
|
114
|
+
"tier": {
|
|
115
|
+
"enum": [
|
|
116
|
+
"info",
|
|
117
|
+
"low",
|
|
118
|
+
"med",
|
|
119
|
+
"high",
|
|
120
|
+
"crit",
|
|
121
|
+
"known-exploitable"
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
"options": {
|
|
125
|
+
"type": "array",
|
|
126
|
+
"items": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"minLength": 1
|
|
129
|
+
}
|
|
130
|
+
}
|
|
53
131
|
}
|
|
54
132
|
}
|