Skip to content

Commit 684ab33

Browse files
Merge branch 'AST-129885-dast-scans-api' into AST-129886-dast-alerts
2 parents 4db84db + 13ae8bc commit 684ab33

File tree

6 files changed

+82
-0
lines changed

6 files changed

+82
-0
lines changed

.editorconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 4
6+
end_of_line = lf
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
11+
[*.{json,yml,yaml}]
12+
indent_size = 2
13+

.prettierrc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"tabWidth": 4,
3+
"useTabs": false,
4+
"semi": true,
5+
"singleQuote": false,
6+
"trailingComma": "none",
7+
"printWidth": 120
8+
}
9+

src/main/dast/CxDastScan.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
export default class CxDastScan {
2+
scanId: string;
3+
initiator: string;
4+
scanType: string;
5+
created: string;
6+
riskRating: string;
7+
startTime: string;
8+
scanDuration: number;
9+
lastStatus: string;
10+
statistics: string;
11+
12+
static parseDastScan(resultObject: any): CxDastScan[] {
13+
let scans: CxDastScan[] = [];
14+
15+
const parseDastScanResult = (result: any): CxDastScan => {
16+
const scan = new CxDastScan();
17+
scan.scanId = result.ScanID;
18+
scan.initiator = result.Initiator;
19+
scan.scanType = result.ScanType;
20+
scan.created = result.Created;
21+
scan.riskRating = result.RiskRating;
22+
scan.startTime = result.StartTime;
23+
scan.scanDuration = result.ScanDuration;
24+
scan.lastStatus = result.LastStatus;
25+
scan.statistics = result.Statistics;
26+
return scan;
27+
}
28+
29+
if (resultObject instanceof Array) {
30+
scans = resultObject.map((result: any) => parseDastScanResult(result));
31+
} else {
32+
const scan = parseDastScanResult(resultObject)
33+
scans.push(scan);
34+
}
35+
return scans;
36+
}
37+
}
38+

src/main/wrapper/CxConstants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export enum CxConstants {
3131
SUB_CMD_VALIDATE = "validate",
3232
CMD_PROJECT = "project",
3333
CMD_DAST_ENVIRONMENTS = 'dast-environments',
34+
CMD_DAST_SCANS = 'dast-scans',
3435
CMD_DAST_ALERTS = 'dast-alerts',
3536
SUB_CMD_BRANCHES = "branches",
3637
CMD_SCAN = "scan",
@@ -102,6 +103,7 @@ export enum CxConstants {
102103
SCAN_CONTAINERS_REALTIME = "CxContainersRealtime",
103104
PROJECT_TYPE = "CxProject",
104105
DAST_ENVIRONMENT_TYPE = 'CxDastEnvironment',
106+
DAST_SCAN_TYPE = 'CxDastScan',
105107
DAST_ALERT_TYPE = 'CxDastAlert',
106108
PREDICATE_TYPE = "CxPredicate",
107109
CODE_BASHING_TYPE = "CxCodeBashing",

src/main/wrapper/CxWrapper.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,21 @@ export class CxWrapper {
285285
return await exec.executeCommands(this.config.pathToExecutable, commands, CxConstants.DAST_ENVIRONMENT_TYPE);
286286
}
287287

288+
async dastScansList(environmentId: string, filters: string): Promise<CxCommandOutput> {
289+
const validated_filters = this.filterArguments(filters);
290+
const commands: string[] = (
291+
[
292+
CxConstants.CMD_DAST_SCANS,
293+
CxConstants.SUB_CMD_LIST,
294+
CxConstants.ENVIRONMENT_ID,
295+
environmentId
296+
] as string[]
297+
).concat(validated_filters);
298+
commands.push(...this.initializeCommands(true));
299+
const exec = new ExecutionService();
300+
return await exec.executeCommands(this.config.pathToExecutable, commands, CxConstants.DAST_SCAN_TYPE);
301+
}
302+
288303
async dastAlertsList(environmentId: string, scanId: string, filters: string): Promise<CxCommandOutput> {
289304
const validated_filters = this.filterArguments(filters);
290305
const commands: string[] = [

src/main/wrapper/ExecutionService.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import CxSecretsResult from "../secrets/CxSecrets";
2828
import CxContainerRealtimeResult from "../containersRealtime/CxContainerRealtime";
2929
import CxIacResult from "../iacRealtime/CxIac";
3030
import CxDastEnvironment from "../dast/CxDastEnvironment";
31+
import CxDastScan from "../dast/CxDastScan";
3132

3233
let skipValue = false;
3334
const fileSourceFlag = "--file-source"
@@ -234,6 +235,10 @@ export class ExecutionService {
234235
const environments = CxDastEnvironment.parseDastEnvironment(resultObject);
235236
cxCommandOutput.payload = environments;
236237
break;
238+
case CxConstants.DAST_SCAN_TYPE:
239+
const dastScans = CxDastScan.parseDastScan(resultObject);
240+
cxCommandOutput.payload = dastScans;
241+
break;
237242
case CxConstants.CODE_BASHING_TYPE:
238243
const codeBashing = CxCodeBashing.parseCodeBashing(resultObject);
239244
cxCommandOutput.payload = codeBashing;

0 commit comments

Comments
 (0)