Skip to content

Commit 13ae8bc

Browse files
add dastScansList
1 parent 5f8f79b commit 13ae8bc

File tree

4 files changed

+61
-0
lines changed

4 files changed

+61
-0
lines changed

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: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ export enum CxConstants {
3131
SUB_CMD_VALIDATE = "validate",
3232
CMD_PROJECT = "project",
3333
CMD_DAST_ENVIRONMENTS = 'dast-environments',
34+
CMD_DAST_SCANS = 'dast-scans',
35+
ENVIRONMENT_ID = '--environment-id',
3436
SUB_CMD_BRANCHES = "branches",
3537
CMD_SCAN = "scan",
3638
SUB_CMD_SHOW = "show",
@@ -100,6 +102,7 @@ export enum CxConstants {
100102
SCAN_CONTAINERS_REALTIME = "CxContainersRealtime",
101103
PROJECT_TYPE = "CxProject",
102104
DAST_ENVIRONMENT_TYPE = 'CxDastEnvironment',
105+
DAST_SCAN_TYPE = 'CxDastScan',
103106
PREDICATE_TYPE = "CxPredicate",
104107
CODE_BASHING_TYPE = "CxCodeBashing",
105108
KICS_REALTIME_TYPE = "CxKicsRealTime",

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 projectBranches(projectId: string, filters: string): Promise<CxCommandOutput> {
289304
// Verify and add possible branch filter by name
290305
const validated_filters = this.filterArguments(CxConstants.BRANCH_NAME + filters)

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)