Skip to content
35 changes: 35 additions & 0 deletions src/main/dast/CxDastEnvironment.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
export default class CxDastEnvironment {
id: string;
name: string;
url: string;
scanType: string;
createdAt: string;
riskRating: string;
lastScanTime: string;
lastStatus: string

static parseDastEnvironment(resultObject: any): CxDastEnvironment[] {
let environments: CxDastEnvironment[] = [];

const parseDastEnvironmentResult = (result: any): CxDastEnvironment => {
const environment = new CxDastEnvironment();
environment.id = result.EnvironmentID;
environment.name = result.Domain;
environment.url = result.URL;
environment.scanType = result.ScanType;
environment.createdAt = result.Created;
environment.riskRating = result.RiskRating;
environment.lastScanTime = result.LastScanTime;
environment.lastStatus = result.LastStatus;
return environment;
}

if (resultObject instanceof Array) {
environments = resultObject.map((result: any) => parseDastEnvironmentResult(result));
} else {
const environment = parseDastEnvironmentResult(resultObject)
environments.push(environment);
}
return environments;
}
}
2 changes: 2 additions & 0 deletions src/main/wrapper/CxConstants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export enum CxConstants {
CMD_AUTH = "auth",
SUB_CMD_VALIDATE = "validate",
CMD_PROJECT = "project",
CMD_DAST_ENVIRONMENTS = 'dast-environments',
SUB_CMD_BRANCHES = "branches",
CMD_SCAN = "scan",
SUB_CMD_SHOW = "show",
Expand Down Expand Up @@ -98,6 +99,7 @@ export enum CxConstants {
SCAN_SECRETS = "CxSecrets",
SCAN_CONTAINERS_REALTIME = "CxContainersRealtime",
PROJECT_TYPE = "CxProject",
DAST_ENVIRONMENT_TYPE = 'CxDastEnvironment',
PREDICATE_TYPE = "CxPredicate",
CODE_BASHING_TYPE = "CxCodeBashing",
KICS_REALTIME_TYPE = "CxKicsRealTime",
Expand Down
10 changes: 10 additions & 0 deletions src/main/wrapper/CxWrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,16 @@ export class CxWrapper {
return await exec.executeCommands(this.config.pathToExecutable, commands, CxConstants.PROJECT_TYPE);
}

async dastEnvironmentsList(filters: string): Promise<CxCommandOutput> {
const validated_filters = this.filterArguments(filters);
const commands: string[] = ([CxConstants.CMD_DAST_ENVIRONMENTS, CxConstants.SUB_CMD_LIST] as string[]).concat(
validated_filters
);
commands.push(...this.initializeCommands(true));
const exec = new ExecutionService();
return await exec.executeCommands(this.config.pathToExecutable, commands, CxConstants.DAST_ENVIRONMENT_TYPE);
}

async projectBranches(projectId: string, filters: string): Promise<CxCommandOutput> {
// Verify and add possible branch filter by name
const validated_filters = this.filterArguments(CxConstants.BRANCH_NAME + filters)
Expand Down
5 changes: 5 additions & 0 deletions src/main/wrapper/ExecutionService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import CxOssResult from "../oss/CxOss";
import CxSecretsResult from "../secrets/CxSecrets";
import CxContainerRealtimeResult from "../containersRealtime/CxContainerRealtime";
import CxIacResult from "../iacRealtime/CxIac";
import CxDastEnvironment from "../dast/CxDastEnvironment";

let skipValue = false;
const fileSourceFlag = "--file-source"
Expand Down Expand Up @@ -229,6 +230,10 @@ export class ExecutionService {
const projects = CxProject.parseProject(resultObject);
cxCommandOutput.payload = projects;
break;
case CxConstants.DAST_ENVIRONMENT_TYPE:
const environments = CxDastEnvironment.parseDastEnvironment(resultObject);
cxCommandOutput.payload = environments;
break;
case CxConstants.CODE_BASHING_TYPE:
const codeBashing = CxCodeBashing.parseCodeBashing(resultObject);
cxCommandOutput.payload = codeBashing;
Expand Down