@contrast/contrast 2.0.2-beta.2 → 2.0.2-beta.4
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 +51 -1
- package/dist/audit/catalogueApplication/catalogueApplication.js +6 -10
- package/dist/audit/catalogueApplication/catalogueApplication.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/commonApi.js +3 -6
- package/dist/audit/languageAnalysisEngine/commonApi.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/filterProjectPath.js +1 -0
- package/dist/audit/languageAnalysisEngine/filterProjectPath.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/getProjectRootFilenames.js +9 -12
- package/dist/audit/languageAnalysisEngine/getProjectRootFilenames.js.map +1 -0
- package/dist/audit/languageAnalysisEngine/sendSnapshot.js +15 -19
- package/dist/audit/languageAnalysisEngine/sendSnapshot.js.map +1 -0
- package/dist/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js +9 -9
- package/dist/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js.map +1 -0
- package/dist/audit/report/commonReportingFunctions.js +33 -48
- package/dist/audit/report/commonReportingFunctions.js.map +1 -0
- package/dist/audit/report/models/reportGuidanceModel.js +2 -5
- package/dist/audit/report/models/reportGuidanceModel.js.map +1 -0
- package/dist/audit/report/models/reportLibraryModel.js +3 -7
- package/dist/audit/report/models/reportLibraryModel.js.map +1 -0
- package/dist/audit/report/models/reportListModel.js +4 -9
- package/dist/audit/report/models/reportListModel.js.map +1 -0
- package/dist/audit/report/models/reportOutputModel.js +4 -9
- package/dist/audit/report/models/reportOutputModel.js.map +1 -0
- package/dist/audit/report/models/reportSeverityModel.js +2 -5
- package/dist/audit/report/models/reportSeverityModel.js.map +1 -0
- package/dist/audit/report/models/severityCountModel.js +3 -5
- package/dist/audit/report/models/severityCountModel.js.map +1 -0
- package/dist/audit/report/reportingFeature.js +27 -55
- package/dist/audit/report/reportingFeature.js.map +1 -0
- package/dist/audit/report/utils/reportUtils.js +28 -59
- package/dist/audit/report/utils/reportUtils.js.map +1 -0
- package/dist/audit/save.js +14 -16
- package/dist/audit/save.js.map +1 -0
- package/dist/cliConstants.js +17 -18
- package/dist/cliConstants.js.map +1 -0
- package/dist/commands/audit/auditConfig.js +7 -10
- package/dist/commands/audit/auditConfig.js.map +1 -0
- package/dist/commands/audit/auditController.js +9 -13
- package/dist/commands/audit/auditController.js.map +1 -0
- package/dist/commands/audit/help.js +23 -25
- package/dist/commands/audit/help.js.map +1 -0
- package/dist/commands/audit/processAudit.js +9 -12
- package/dist/commands/audit/processAudit.js.map +1 -0
- package/dist/commands/audit/saveFile.js +3 -6
- package/dist/commands/audit/saveFile.js.map +1 -0
- package/dist/commands/auth/auth.js +25 -24
- package/dist/commands/auth/auth.js.map +1 -0
- package/dist/commands/config/config.js +12 -13
- package/dist/commands/config/config.js.map +1 -0
- package/dist/commands/github/fingerprintConfig.js +8 -11
- package/dist/commands/github/fingerprintConfig.js.map +1 -0
- package/dist/commands/github/processFingerprint.js +12 -15
- package/dist/commands/github/processFingerprint.js.map +1 -0
- package/dist/commands/github/projectGroup.js +25 -32
- package/dist/commands/github/projectGroup.js.map +1 -0
- package/dist/commands/github/repoServices.js +11 -21
- package/dist/commands/github/repoServices.js.map +1 -0
- package/dist/commands/learn/learn.js +3 -6
- package/dist/commands/learn/learn.js.map +1 -0
- package/dist/commands/learn/processLearn.js +3 -6
- package/dist/commands/learn/processLearn.js.map +1 -0
- package/dist/commands/scan/processScan.js +11 -14
- package/dist/commands/scan/processScan.js.map +1 -0
- package/dist/common/HTTPClient.js +123 -94
- package/dist/common/HTTPClient.js.map +1 -0
- package/dist/common/autoDetection.js +26 -33
- package/dist/common/autoDetection.js.map +1 -0
- package/dist/common/baseRequest.js +14 -18
- package/dist/common/baseRequest.js.map +1 -0
- package/dist/common/commonHelp.js +13 -13
- package/dist/common/commonHelp.js.map +1 -0
- package/dist/common/errorHandling.js +30 -39
- package/dist/common/errorHandling.js.map +1 -0
- package/dist/common/fail.js +6 -12
- package/dist/common/fail.js.map +1 -0
- package/dist/common/versionChecker.js +16 -19
- package/dist/common/versionChecker.js.map +1 -0
- package/dist/constants/constants.js +44 -65
- package/dist/constants/constants.js.map +1 -0
- package/dist/constants/lambda.js +8 -5
- package/dist/constants/lambda.js.map +1 -0
- package/dist/constants/locales.js +6 -9
- package/dist/constants/locales.js.map +1 -0
- package/dist/index.js +36 -39
- package/dist/index.js.map +1 -0
- package/dist/lambda/analytics.js +6 -9
- package/dist/lambda/analytics.js.map +1 -0
- package/dist/lambda/arn.js +6 -9
- package/dist/lambda/arn.js.map +1 -0
- package/dist/lambda/aws.js +29 -34
- package/dist/lambda/aws.js.map +1 -0
- package/dist/lambda/cliError.js +13 -41
- package/dist/lambda/cliError.js.map +1 -0
- package/dist/lambda/constants.js +3 -4
- package/dist/lambda/constants.js.map +1 -0
- package/dist/lambda/help.js +39 -44
- package/dist/lambda/help.js.map +1 -0
- package/dist/lambda/lambda.js +61 -65
- package/dist/lambda/lambda.js.map +1 -0
- package/dist/lambda/lambdaUtils.js +38 -32
- package/dist/lambda/lambdaUtils.js.map +1 -0
- package/dist/lambda/logUtils.js +21 -17
- package/dist/lambda/logUtils.js.map +1 -0
- package/dist/lambda/scanDetailCompletion.js +19 -25
- package/dist/lambda/scanDetailCompletion.js.map +1 -0
- package/dist/lambda/scanRequest.js +34 -41
- package/dist/lambda/scanRequest.js.map +1 -0
- package/dist/lambda/scanResults.js +8 -10
- package/dist/lambda/scanResults.js.map +1 -0
- package/dist/lambda/types.js +5 -7
- package/dist/lambda/types.js.map +1 -0
- package/dist/lambda/utils.js +33 -35
- package/dist/lambda/utils.js.map +1 -0
- package/dist/sbom/generateSbom.js +6 -10
- package/dist/sbom/generateSbom.js.map +1 -0
- package/dist/scaAnalysis/common/auditReport.js +8 -12
- package/dist/scaAnalysis/common/auditReport.js.map +1 -0
- package/dist/scaAnalysis/common/commonReportingFunctionsSca.js +26 -32
- package/dist/scaAnalysis/common/commonReportingFunctionsSca.js.map +1 -0
- package/dist/scaAnalysis/common/formatMessage.js +8 -17
- package/dist/scaAnalysis/common/formatMessage.js.map +1 -0
- package/dist/scaAnalysis/common/models/ScaReportModel.js +4 -9
- package/dist/scaAnalysis/common/models/ScaReportModel.js.map +1 -0
- package/dist/scaAnalysis/common/scaParserForGoAndJava.js +10 -9
- package/dist/scaAnalysis/common/scaParserForGoAndJava.js.map +1 -0
- package/dist/scaAnalysis/common/scaServicesUpload.js +21 -22
- package/dist/scaAnalysis/common/scaServicesUpload.js.map +1 -0
- package/dist/scaAnalysis/common/treeUpload.js +7 -10
- package/dist/scaAnalysis/common/treeUpload.js.map +1 -0
- package/dist/scaAnalysis/common/utils/reportUtilsSca.js +21 -29
- package/dist/scaAnalysis/common/utils/reportUtilsSca.js.map +1 -0
- package/dist/scaAnalysis/dotnet/analysis.js +12 -18
- package/dist/scaAnalysis/dotnet/analysis.js.map +1 -0
- package/dist/scaAnalysis/dotnet/index.js +4 -7
- package/dist/scaAnalysis/dotnet/index.js.map +1 -0
- package/dist/scaAnalysis/go/goAnalysis.js +8 -11
- package/dist/scaAnalysis/go/goAnalysis.js.map +1 -0
- package/dist/scaAnalysis/go/goParseDeps.js +9 -7
- package/dist/scaAnalysis/go/goParseDeps.js.map +1 -0
- package/dist/scaAnalysis/go/goReadDepFile.js +10 -8
- package/dist/scaAnalysis/go/goReadDepFile.js.map +1 -0
- package/dist/scaAnalysis/java/analysis.js +23 -20
- package/dist/scaAnalysis/java/analysis.js.map +1 -0
- package/dist/scaAnalysis/java/index.js +7 -10
- package/dist/scaAnalysis/java/index.js.map +1 -0
- package/dist/scaAnalysis/java/javaBuildDepsParser.js +43 -43
- package/dist/scaAnalysis/java/javaBuildDepsParser.js.map +1 -0
- package/dist/scaAnalysis/javascript/analysis.js +16 -20
- package/dist/scaAnalysis/javascript/analysis.js.map +1 -0
- package/dist/scaAnalysis/javascript/index.js +17 -19
- package/dist/scaAnalysis/javascript/index.js.map +1 -0
- package/dist/scaAnalysis/javascript/scaServiceParser.js +8 -15
- package/dist/scaAnalysis/javascript/scaServiceParser.js.map +1 -0
- package/dist/scaAnalysis/legacy/legacyFlow.js +13 -15
- package/dist/scaAnalysis/legacy/legacyFlow.js.map +1 -0
- package/dist/scaAnalysis/php/analysis.js +15 -16
- package/dist/scaAnalysis/php/analysis.js.map +1 -0
- package/dist/scaAnalysis/php/index.js +5 -8
- package/dist/scaAnalysis/php/index.js.map +1 -0
- package/dist/scaAnalysis/php/phpNewServicesMapper.js +9 -12
- package/dist/scaAnalysis/php/phpNewServicesMapper.js.map +1 -0
- package/dist/scaAnalysis/processServicesFlow.js +50 -25
- package/dist/scaAnalysis/processServicesFlow.js.map +1 -0
- package/dist/scaAnalysis/python/analysis.js +16 -23
- package/dist/scaAnalysis/python/analysis.js.map +1 -0
- package/dist/scaAnalysis/python/index.js +4 -7
- package/dist/scaAnalysis/python/index.js.map +1 -0
- package/dist/scaAnalysis/repoMode/gradleParser.js +7 -13
- package/dist/scaAnalysis/repoMode/gradleParser.js.map +1 -0
- package/dist/scaAnalysis/repoMode/index.js +9 -12
- package/dist/scaAnalysis/repoMode/index.js.map +1 -0
- package/dist/scaAnalysis/repoMode/mavenParser.js +12 -12
- package/dist/scaAnalysis/repoMode/mavenParser.js.map +1 -0
- package/dist/scaAnalysis/ruby/analysis.js +32 -46
- package/dist/scaAnalysis/ruby/analysis.js.map +1 -0
- package/dist/scaAnalysis/ruby/index.js +5 -8
- package/dist/scaAnalysis/ruby/index.js.map +1 -0
- package/dist/scaAnalysis/scaAnalysis.js +49 -51
- package/dist/scaAnalysis/scaAnalysis.js.map +1 -0
- package/dist/scan/fileUtils.js +27 -36
- package/dist/scan/fileUtils.js.map +1 -0
- package/dist/scan/formatScanOutput.js +47 -61
- package/dist/scan/formatScanOutput.js.map +1 -0
- package/dist/scan/help.js +8 -11
- package/dist/scan/help.js.map +1 -0
- package/dist/scan/models/groupedResultsModel.js +2 -5
- package/dist/scan/models/groupedResultsModel.js.map +1 -0
- package/dist/scan/models/resultContentModel.js +2 -2
- package/dist/scan/models/resultContentModel.js.map +1 -0
- package/dist/scan/models/scanResultsModel.js +2 -5
- package/dist/scan/models/scanResultsModel.js.map +1 -0
- package/dist/scan/populateProjectIdAndProjectName.js +9 -12
- package/dist/scan/populateProjectIdAndProjectName.js.map +1 -0
- package/dist/scan/saveResults.js +3 -6
- package/dist/scan/saveResults.js.map +1 -0
- package/dist/scan/scan.js +24 -31
- package/dist/scan/scan.js.map +1 -0
- package/dist/scan/scanConfig.js +14 -12
- package/dist/scan/scanConfig.js.map +1 -0
- package/dist/scan/scanController.js +17 -20
- package/dist/scan/scanController.js.map +1 -0
- package/dist/scan/scanResults.js +27 -34
- package/dist/scan/scanResults.js.map +1 -0
- package/dist/telemetry/telemetry.js +29 -59
- package/dist/telemetry/telemetry.js.map +1 -0
- package/dist/utils/capabilities.js +1 -0
- package/dist/utils/capabilities.js.map +1 -0
- package/dist/utils/commonApi.js +15 -24
- package/dist/utils/commonApi.js.map +1 -0
- package/dist/utils/filterProjectPath.js +1 -0
- package/dist/utils/filterProjectPath.js.map +1 -0
- package/dist/utils/generalAPI.js +11 -17
- package/dist/utils/generalAPI.js.map +1 -0
- package/dist/utils/getConfig.js +7 -13
- package/dist/utils/getConfig.js.map +1 -0
- package/dist/utils/oraWrapper.js +7 -14
- package/dist/utils/oraWrapper.js.map +1 -0
- package/dist/utils/paramsUtil/commandlineParams.js +2 -5
- package/dist/utils/paramsUtil/commandlineParams.js.map +1 -0
- package/dist/utils/paramsUtil/configStoreParams.js +9 -10
- package/dist/utils/paramsUtil/configStoreParams.js.map +1 -0
- package/dist/utils/paramsUtil/envVariableParams.js +2 -3
- package/dist/utils/paramsUtil/envVariableParams.js.map +1 -0
- package/dist/utils/paramsUtil/paramHandler.js +12 -13
- package/dist/utils/paramsUtil/paramHandler.js.map +1 -0
- package/dist/utils/parsedCLIOptions.js +4 -7
- package/dist/utils/parsedCLIOptions.js.map +1 -0
- package/dist/utils/requestUtils.js +7 -13
- package/dist/utils/requestUtils.js.map +1 -0
- package/dist/utils/saveFile.js +8 -11
- package/dist/utils/saveFile.js.map +1 -0
- package/dist/utils/validationCheck.js +5 -11
- package/dist/utils/validationCheck.js.map +1 -0
- package/package.json +32 -41
- package/.prettierignore +0 -1
- package/bin/contrast.js +0 -2
- package/dist/audit/languageAnalysisEngine/util/requestUtils.js +0 -14
- package/dist/lambda/__mocks__/aws.js +0 -21
- package/dist/lambda/__mocks__/lambdaConfig.json +0 -42
- package/src/audit/catalogueApplication/catalogueApplication.js +0 -51
- package/src/audit/languageAnalysisEngine/commonApi.js +0 -20
- package/src/audit/languageAnalysisEngine/filterProjectPath.js +0 -21
- package/src/audit/languageAnalysisEngine/getProjectRootFilenames.js +0 -36
- package/src/audit/languageAnalysisEngine/sendSnapshot.js +0 -57
- package/src/audit/languageAnalysisEngine/util/requestUtils.js +0 -17
- package/src/audit/nodeAnalysisEngine/parseYarn2LockFileContents.js +0 -63
- package/src/audit/report/commonReportingFunctions.js +0 -412
- package/src/audit/report/models/reportGuidanceModel.ts +0 -5
- package/src/audit/report/models/reportLibraryModel.ts +0 -30
- package/src/audit/report/models/reportListModel.ts +0 -49
- package/src/audit/report/models/reportOutputModel.ts +0 -29
- package/src/audit/report/models/reportSeverityModel.ts +0 -18
- package/src/audit/report/models/severityCountModel.ts +0 -22
- package/src/audit/report/reportingFeature.ts +0 -110
- package/src/audit/report/utils/reportUtils.ts +0 -165
- package/src/audit/save.js +0 -67
- package/src/cliConstants.js +0 -523
- package/src/commands/audit/auditConfig.js +0 -18
- package/src/commands/audit/auditController.js +0 -50
- package/src/commands/audit/help.js +0 -72
- package/src/commands/audit/processAudit.js +0 -34
- package/src/commands/audit/saveFile.js +0 -15
- package/src/commands/auth/auth.js +0 -146
- package/src/commands/config/config.js +0 -41
- package/src/commands/github/fingerprintConfig.js +0 -19
- package/src/commands/github/processFingerprint.js +0 -37
- package/src/commands/github/projectGroup.js +0 -298
- package/src/commands/github/repoServices.js +0 -122
- package/src/commands/learn/learn.js +0 -10
- package/src/commands/learn/processLearn.js +0 -13
- package/src/commands/scan/processScan.js +0 -42
- package/src/common/HTTPClient.js +0 -775
- package/src/common/autoDetection.js +0 -209
- package/src/common/baseRequest.ts +0 -83
- package/src/common/commonHelp.js +0 -53
- package/src/common/errorHandling.js +0 -157
- package/src/common/fail.js +0 -79
- package/src/common/versionChecker.js +0 -75
- package/src/constants/constants.js +0 -71
- package/src/constants/lambda.js +0 -85
- package/src/constants/locales.js +0 -365
- package/src/index.ts +0 -142
- package/src/lambda/__mocks__/aws.ts +0 -32
- package/src/lambda/__mocks__/lambdaConfig.json +0 -42
- package/src/lambda/analytics.ts +0 -9
- package/src/lambda/arn.ts +0 -33
- package/src/lambda/aws.ts +0 -248
- package/src/lambda/cliError.ts +0 -72
- package/src/lambda/constants.ts +0 -11
- package/src/lambda/help.ts +0 -92
- package/src/lambda/lambda.ts +0 -230
- package/src/lambda/lambdaUtils.ts +0 -111
- package/src/lambda/logUtils.ts +0 -64
- package/src/lambda/scanDetailCompletion.ts +0 -78
- package/src/lambda/scanRequest.ts +0 -169
- package/src/lambda/scanResults.ts +0 -29
- package/src/lambda/types.ts +0 -36
- package/src/lambda/utils.ts +0 -188
- package/src/sbom/generateSbom.ts +0 -45
- package/src/scaAnalysis/common/auditReport.js +0 -59
- package/src/scaAnalysis/common/commonReportingFunctionsSca.js +0 -276
- package/src/scaAnalysis/common/formatMessage.js +0 -67
- package/src/scaAnalysis/common/models/ScaReportModel.ts +0 -81
- package/src/scaAnalysis/common/scaParserForGoAndJava.js +0 -41
- package/src/scaAnalysis/common/scaServicesUpload.js +0 -159
- package/src/scaAnalysis/common/treeUpload.js +0 -51
- package/src/scaAnalysis/common/utils/reportUtilsSca.ts +0 -123
- package/src/scaAnalysis/dotnet/analysis.js +0 -72
- package/src/scaAnalysis/dotnet/index.js +0 -11
- package/src/scaAnalysis/go/goAnalysis.js +0 -26
- package/src/scaAnalysis/go/goParseDeps.js +0 -203
- package/src/scaAnalysis/go/goReadDepFile.js +0 -34
- package/src/scaAnalysis/java/analysis.js +0 -148
- package/src/scaAnalysis/java/index.js +0 -29
- package/src/scaAnalysis/java/javaBuildDepsParser.js +0 -439
- package/src/scaAnalysis/javascript/analysis.js +0 -111
- package/src/scaAnalysis/javascript/index.js +0 -104
- package/src/scaAnalysis/javascript/scaServiceParser.js +0 -151
- package/src/scaAnalysis/legacy/legacyFlow.js +0 -43
- package/src/scaAnalysis/php/analysis.js +0 -78
- package/src/scaAnalysis/php/index.js +0 -28
- package/src/scaAnalysis/php/phpNewServicesMapper.js +0 -77
- package/src/scaAnalysis/processServicesFlow.js +0 -126
- package/src/scaAnalysis/python/analysis.js +0 -93
- package/src/scaAnalysis/python/index.js +0 -16
- package/src/scaAnalysis/repoMode/gradleParser.js +0 -88
- package/src/scaAnalysis/repoMode/index.js +0 -21
- package/src/scaAnalysis/repoMode/mavenParser.js +0 -138
- package/src/scaAnalysis/ruby/analysis.js +0 -413
- package/src/scaAnalysis/ruby/index.js +0 -16
- package/src/scaAnalysis/scaAnalysis.js +0 -172
- package/src/scan/fileUtils.js +0 -218
- package/src/scan/formatScanOutput.ts +0 -225
- package/src/scan/help.js +0 -56
- package/src/scan/models/groupedResultsModel.ts +0 -20
- package/src/scan/models/resultContentModel.ts +0 -86
- package/src/scan/models/scanResultsModel.ts +0 -55
- package/src/scan/populateProjectIdAndProjectName.js +0 -73
- package/src/scan/saveResults.js +0 -14
- package/src/scan/scan.ts +0 -68
- package/src/scan/scanConfig.js +0 -58
- package/src/scan/scanController.js +0 -98
- package/src/scan/scanResults.js +0 -171
- package/src/telemetry/telemetry.ts +0 -154
- package/src/utils/capabilities.js +0 -12
- package/src/utils/commonApi.js +0 -103
- package/src/utils/filterProjectPath.js +0 -25
- package/src/utils/generalAPI.js +0 -52
- package/src/utils/getConfig.ts +0 -34
- package/src/utils/oraWrapper.js +0 -29
- package/src/utils/paramsUtil/commandlineParams.js +0 -12
- package/src/utils/paramsUtil/configStoreParams.js +0 -19
- package/src/utils/paramsUtil/envVariableParams.js +0 -10
- package/src/utils/paramsUtil/paramHandler.js +0 -38
- package/src/utils/parsedCLIOptions.js +0 -32
- package/src/utils/requestUtils.js +0 -29
- package/src/utils/saveFile.js +0 -20
- package/src/utils/validationCheck.js +0 -39
package/src/common/HTTPClient.js
DELETED
|
@@ -1,775 +0,0 @@
|
|
|
1
|
-
const _ = require('lodash')
|
|
2
|
-
const fs = require('fs')
|
|
3
|
-
const requestUtils = require('./../utils/requestUtils')
|
|
4
|
-
const { AUTH_CALLBACK_URL } = require('../constants/constants')
|
|
5
|
-
|
|
6
|
-
function HTTPClient(config) {
|
|
7
|
-
const apiKey = config.apiKey
|
|
8
|
-
const authToken = config.authorization
|
|
9
|
-
this.rejectUnauthorized = !config.certSelfSigned
|
|
10
|
-
|
|
11
|
-
const superApiKey = config.superApiKey
|
|
12
|
-
const superAuthToken = config.superAuthorization
|
|
13
|
-
|
|
14
|
-
this.requestOptions = {
|
|
15
|
-
forever: true,
|
|
16
|
-
json: true,
|
|
17
|
-
rejectUnauthorized: this.rejectUnauthorized,
|
|
18
|
-
uri: config.host,
|
|
19
|
-
followRedirect: false,
|
|
20
|
-
headers: {
|
|
21
|
-
'Content-Type': 'application/json; charset=utf-8',
|
|
22
|
-
Authorization: authToken,
|
|
23
|
-
'API-Key': apiKey,
|
|
24
|
-
SuperAuthorization: superAuthToken,
|
|
25
|
-
'Super-API-Key': superApiKey,
|
|
26
|
-
'User-Agent': 'contrast-cli-v2'
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (config.proxy) {
|
|
31
|
-
this.requestOptions.proxy = config.proxy
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
this.maybeAddCertsToRequest(config)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
HTTPClient.prototype.maybeAddCertsToRequest = function (config) {
|
|
38
|
-
// cacert
|
|
39
|
-
const caCertFilePath = config.cacert
|
|
40
|
-
if (caCertFilePath) {
|
|
41
|
-
const caFileContent = fs.readFileSync(caCertFilePath)
|
|
42
|
-
if (caFileContent instanceof Error) {
|
|
43
|
-
throw new Error(
|
|
44
|
-
`Unable to read CA from ${caCertFilePath}, msg: ${caFileContent.message}`
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
|
-
this.requestOptions.ca = caFileContent
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// cert
|
|
51
|
-
const certPath = config.cert
|
|
52
|
-
if (certPath) {
|
|
53
|
-
const certFile = fs.readFileSync(certPath)
|
|
54
|
-
if (certFile instanceof Error) {
|
|
55
|
-
throw new Error(
|
|
56
|
-
`Unable to read Certificate PEM file from config option contrast.api.certificate.cert_file='${certPath}', msg: ${certFile.message}`
|
|
57
|
-
)
|
|
58
|
-
}
|
|
59
|
-
this.requestOptions.cert = certFile
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// key
|
|
63
|
-
const keyPath = config.key
|
|
64
|
-
if (keyPath) {
|
|
65
|
-
const keyFile = fs.readFileSync(keyPath)
|
|
66
|
-
if (keyFile instanceof Error) {
|
|
67
|
-
throw new Error(
|
|
68
|
-
`Unable to read Key PEM file from config option contrast.api.certificate.key_file='${keyPath}', msg: ${keyFile.message}`
|
|
69
|
-
)
|
|
70
|
-
}
|
|
71
|
-
this.requestOptions.key = keyFile
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
HTTPClient.prototype.getScanResultsInstances = function getScanResultsInstances(
|
|
76
|
-
config,
|
|
77
|
-
scanId
|
|
78
|
-
) {
|
|
79
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
80
|
-
let url = createScanResultsInstancesURL(config, scanId)
|
|
81
|
-
options.url = url
|
|
82
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
HTTPClient.prototype.getSpecificScanResult = function getSpecificScanResult(
|
|
86
|
-
config,
|
|
87
|
-
scanId
|
|
88
|
-
) {
|
|
89
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
90
|
-
let url = createSpecificScanResultURL(config, scanId)
|
|
91
|
-
options.url = url
|
|
92
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
HTTPClient.prototype.getSpecificScanResultSarif =
|
|
96
|
-
function getSpecificScanResultSarif(config, scanId) {
|
|
97
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
98
|
-
options.url = createRawOutputURL(config, scanId)
|
|
99
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
HTTPClient.prototype.createNewEvent = function createNewEvent(
|
|
103
|
-
config,
|
|
104
|
-
scanId,
|
|
105
|
-
newProject
|
|
106
|
-
) {
|
|
107
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
108
|
-
options.url = createEventCollectorURL(config, scanId)
|
|
109
|
-
|
|
110
|
-
options.body = {
|
|
111
|
-
eventSource: process.env.CODESEC_INVOCATION_ENVIRONMENT,
|
|
112
|
-
trackingProperties: {
|
|
113
|
-
projectNameSource: config.projectNameSource,
|
|
114
|
-
waitedForResults: !config.ff,
|
|
115
|
-
newProject
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
HTTPClient.prototype.getScanId = function getScanId(config, codeArtifactId) {
|
|
122
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
123
|
-
let url = createGetScanIdURL(config)
|
|
124
|
-
options.url = url
|
|
125
|
-
options.body = {
|
|
126
|
-
codeArtifactId: codeArtifactId,
|
|
127
|
-
label: config.label
|
|
128
|
-
? config.label
|
|
129
|
-
: `Started by CLI tool at ${new Date().toString()}`
|
|
130
|
-
}
|
|
131
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
HTTPClient.prototype.sendArtifact = async function sendArtifact(config) {
|
|
135
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
136
|
-
|
|
137
|
-
let formData = {
|
|
138
|
-
filename: fs.createReadStream(config.file)
|
|
139
|
-
}
|
|
140
|
-
options.formData = formData
|
|
141
|
-
options.headers['Content-Type'] = 'multipart/form-data'
|
|
142
|
-
options.url = createHarmonyUrl(config)
|
|
143
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
HTTPClient.prototype.createProjectId = function createProjectId(config) {
|
|
147
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
148
|
-
|
|
149
|
-
options.body = {
|
|
150
|
-
name: config.name,
|
|
151
|
-
archived: 'false'
|
|
152
|
-
}
|
|
153
|
-
if (config.language) {
|
|
154
|
-
options.body.language = config.language
|
|
155
|
-
}
|
|
156
|
-
options.url = createHarmonyProjectsUrl(config)
|
|
157
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
HTTPClient.prototype.getProjectIdByName = function getProjectIdByName(config) {
|
|
161
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
162
|
-
|
|
163
|
-
options.url = createHarmonyProjectsUrl(config) + '?name=' + config.name
|
|
164
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
HTTPClient.prototype.getScanProjectById = function getScanProjectById(config) {
|
|
168
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
169
|
-
|
|
170
|
-
options.url = createScanProjectUrl(config)
|
|
171
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
HTTPClient.prototype.getGlobalProperties = function getGlobalProperties(host) {
|
|
175
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
176
|
-
let url = createGlobalPropertiesUrl(host)
|
|
177
|
-
options.url = url
|
|
178
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
HTTPClient.prototype.pollForAuth = function pollForAuth(token) {
|
|
182
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
183
|
-
let url = pollForAuthUrl()
|
|
184
|
-
options.url = url
|
|
185
|
-
|
|
186
|
-
let requestBody = {}
|
|
187
|
-
requestBody.token = token
|
|
188
|
-
options.body = requestBody
|
|
189
|
-
|
|
190
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
HTTPClient.prototype.catalogueCommand = function catalogueCommand(config) {
|
|
194
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
195
|
-
let url = createAppCreateURL(config)
|
|
196
|
-
options.url = url
|
|
197
|
-
|
|
198
|
-
let requestBody = {}
|
|
199
|
-
requestBody.name = config.applicationName
|
|
200
|
-
requestBody.language = config.language.toUpperCase()
|
|
201
|
-
requestBody.appGroups = config.appGroups
|
|
202
|
-
requestBody.metadata = config.metadata
|
|
203
|
-
requestBody.tags = config.tags
|
|
204
|
-
requestBody.code = config.code
|
|
205
|
-
options.body = requestBody
|
|
206
|
-
|
|
207
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
HTTPClient.prototype.sendSnapshot = function sendSnapshot(requestBody, config) {
|
|
211
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
212
|
-
let url = createSnapshotURL(config)
|
|
213
|
-
options.url = url
|
|
214
|
-
options.body = requestBody
|
|
215
|
-
|
|
216
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
HTTPClient.prototype.scaServiceIngest = function scaServiceIngest(
|
|
220
|
-
requestBody,
|
|
221
|
-
config
|
|
222
|
-
) {
|
|
223
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
224
|
-
let url = createScaServiceIngestURL(config)
|
|
225
|
-
options.url = url
|
|
226
|
-
options.body = requestBody
|
|
227
|
-
|
|
228
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
HTTPClient.prototype.noProjectIdUpload = function scaServiceIngest(
|
|
232
|
-
requestBody,
|
|
233
|
-
config
|
|
234
|
-
) {
|
|
235
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
236
|
-
let url = createScaServiceNoProjectIdURL(config)
|
|
237
|
-
options.url = url
|
|
238
|
-
options.body = requestBody
|
|
239
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
HTTPClient.prototype.scaServiceReport = function scaServiceReport(
|
|
243
|
-
config,
|
|
244
|
-
reportId
|
|
245
|
-
) {
|
|
246
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
247
|
-
let url = createScaServiceReportURL(config, reportId)
|
|
248
|
-
options.url = url
|
|
249
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
HTTPClient.prototype.scaServiceReportNoProjectId = function scaServiceReport(
|
|
253
|
-
config,
|
|
254
|
-
reportId
|
|
255
|
-
) {
|
|
256
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
257
|
-
options.url = createScaServiceReportNoProjectIdURL(config, reportId)
|
|
258
|
-
if (config.debug || config.verbose) {
|
|
259
|
-
console.log('createScaServiceReportNoProjectIdURL', options.url)
|
|
260
|
-
}
|
|
261
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
HTTPClient.prototype.scaServiceReportStatus = function scaServiceReport(
|
|
265
|
-
config,
|
|
266
|
-
reportId
|
|
267
|
-
) {
|
|
268
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
269
|
-
options.url = createScaServiceReportStatusURL(config, reportId)
|
|
270
|
-
if (config.debug || config.verbose) {
|
|
271
|
-
console.log('createScaServiceReportStatusURL', options.url)
|
|
272
|
-
}
|
|
273
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
HTTPClient.prototype.scaServiceNoProjectIdReportStatus =
|
|
277
|
-
function scaServiceReport(config, reportId) {
|
|
278
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
279
|
-
options.url = createScaServiceReportStatusURL(config, reportId)
|
|
280
|
-
if (config.debug || config.verbose) {
|
|
281
|
-
console.log('createScaServiceReportStatusURL', options.url)
|
|
282
|
-
}
|
|
283
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
// HTTPClient.prototype.scaServiceIngests = function scaServiceIngests(config) {
|
|
287
|
-
// const options = _.cloneDeep(this.requestOptions)
|
|
288
|
-
// let url = createScaServiceIngestsURL(config)
|
|
289
|
-
// options.url = url
|
|
290
|
-
// return requestUtils.sendRequest({ method: 'get', options })
|
|
291
|
-
// }
|
|
292
|
-
|
|
293
|
-
HTTPClient.prototype.scaServiceHealth = function scaServiceIngests(config) {
|
|
294
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
295
|
-
let url = createScaServiceHealthURL(config)
|
|
296
|
-
options.url = url
|
|
297
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
HTTPClient.prototype.getReportById = function getReportById(config, reportId) {
|
|
301
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
302
|
-
if (config.ignoreDev) {
|
|
303
|
-
options.url = createSpecificReportWithProdUrl(config, reportId)
|
|
304
|
-
} else {
|
|
305
|
-
options.url = createSpecificReportUrl(config, reportId)
|
|
306
|
-
}
|
|
307
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
HTTPClient.prototype.getReportStatusById = function getReportStatusById(
|
|
311
|
-
config,
|
|
312
|
-
snapshotId
|
|
313
|
-
) {
|
|
314
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
315
|
-
options.url = createSpecificReportStatusURL(config, snapshotId)
|
|
316
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
HTTPClient.prototype.getLibraryVulnerabilities =
|
|
320
|
-
function getLibraryVulnerabilities(config, requestBody) {
|
|
321
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
322
|
-
options.url = createLibraryVulnerabilitiesUrl(config)
|
|
323
|
-
options.body = requestBody
|
|
324
|
-
|
|
325
|
-
return requestUtils.sendRequest({ method: 'put', options })
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
HTTPClient.prototype.getAppId = function getAppId(config) {
|
|
329
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
330
|
-
let url = createAppNameUrl(config)
|
|
331
|
-
options.url = url
|
|
332
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
HTTPClient.prototype.registerRepo = function registerRepo(config, requestBody) {
|
|
336
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
337
|
-
let url = createRepositoryUrl(config)
|
|
338
|
-
options.url = url
|
|
339
|
-
options.body = requestBody
|
|
340
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
HTTPClient.prototype.retrieveProjectByRepoId = function retrieveProjectByRepoId(
|
|
344
|
-
config,
|
|
345
|
-
requestBody
|
|
346
|
-
) {
|
|
347
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
348
|
-
let url = createRepoProjectUrl(config)
|
|
349
|
-
options.url = url
|
|
350
|
-
options.body = requestBody
|
|
351
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
HTTPClient.prototype.registerProjectGroup = function (config, requestBody) {
|
|
355
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
356
|
-
let url = registerProjectGroupUrl(config)
|
|
357
|
-
options.url = url
|
|
358
|
-
options.body = requestBody
|
|
359
|
-
|
|
360
|
-
if (config.debug || config.verbose) {
|
|
361
|
-
console.log('registerProjectGroup')
|
|
362
|
-
console.log('url', options.url)
|
|
363
|
-
// console.log('body', options.body)
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
HTTPClient.prototype.registerProject = function (config, body) {
|
|
370
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
371
|
-
let url = registerProjectUrl(config)
|
|
372
|
-
options.url = url
|
|
373
|
-
options.body = body
|
|
374
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
375
|
-
}
|
|
376
|
-
HTTPClient.prototype.retrieveSourcesViaRepositoryId = function (
|
|
377
|
-
config,
|
|
378
|
-
repositoryId
|
|
379
|
-
) {
|
|
380
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
381
|
-
let url = retrieveSourcesUrl(config, repositoryId)
|
|
382
|
-
options.url = url
|
|
383
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
HTTPClient.prototype.retrieveRepoByOrgAndGitURL = function (config) {
|
|
387
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
388
|
-
let url = retrieveRepoByOrgAndGitURL(config)
|
|
389
|
-
options.url = url
|
|
390
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
HTTPClient.prototype.registerOnCliServices = function (config, project) {
|
|
394
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
395
|
-
let url = retrieveRegisterOnCliServicesUrl(config)
|
|
396
|
-
options.url = url
|
|
397
|
-
options.body = project
|
|
398
|
-
|
|
399
|
-
if (config.debug || config.verbose) {
|
|
400
|
-
console.log('registerOnCliServices')
|
|
401
|
-
console.log('url', options.url)
|
|
402
|
-
console.log('body', options.body)
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
HTTPClient.prototype.retrieveProjectByOrganizationId = function registerRepo(
|
|
409
|
-
config
|
|
410
|
-
) {
|
|
411
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
412
|
-
let url = retrieveProjectByOrganizationIdUrl(config)
|
|
413
|
-
options.url = url
|
|
414
|
-
if (config.debug || config.verbose) {
|
|
415
|
-
console.log(url)
|
|
416
|
-
}
|
|
417
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
HTTPClient.prototype.retrieveExistingProjectGroupsByOrg = function registerRepo(
|
|
421
|
-
config
|
|
422
|
-
) {
|
|
423
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
424
|
-
let url =
|
|
425
|
-
retrieveExistingGroupProjectsByOrgUrl(config) +
|
|
426
|
-
'?name=' +
|
|
427
|
-
config.repositoryName +
|
|
428
|
-
'&type=REPOSITORY'
|
|
429
|
-
options.url = url
|
|
430
|
-
if (config.debug || config.verbose) {
|
|
431
|
-
console.log(options.url)
|
|
432
|
-
}
|
|
433
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
HTTPClient.prototype.retrieveExistingProjectIdByProjectGroupId =
|
|
437
|
-
function registerRepo(config, projectGroupId) {
|
|
438
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
439
|
-
let url = retrieveExistingGroupProjectsByGroupIdUrl(config, projectGroupId)
|
|
440
|
-
options.url = url
|
|
441
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
HTTPClient.prototype.retrieveExistingRepo = function registerRepo(config) {
|
|
445
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
446
|
-
let url = retrieveExistingRepoUrl(config)
|
|
447
|
-
options.url = url
|
|
448
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
// HTTPClient.prototype.getDependencyTree = function getReport(
|
|
452
|
-
// orgUuid,
|
|
453
|
-
// appId,
|
|
454
|
-
// reportId
|
|
455
|
-
// ) {
|
|
456
|
-
// const options = _.cloneDeep(this.requestOptions)
|
|
457
|
-
// let url = createGetDependencyTree(options.uri, orgUuid, appId, reportId)
|
|
458
|
-
// options.url = url
|
|
459
|
-
// return requestUtils.sendRequest({ method: 'get', options })
|
|
460
|
-
// }
|
|
461
|
-
|
|
462
|
-
// serverless - lambda
|
|
463
|
-
function getServerlessHost(config = {}) {
|
|
464
|
-
const originalHost = config?.host || config?.get('host')
|
|
465
|
-
const host = originalHost?.endsWith('/')
|
|
466
|
-
? originalHost.slice(0, -1)
|
|
467
|
-
: originalHost
|
|
468
|
-
|
|
469
|
-
return `${host}/Contrast/api/serverless`
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
function createScanFunctionPostUrl(config, params) {
|
|
473
|
-
const url = getServerlessHost(config)
|
|
474
|
-
const { provider, accountId, organizationId } = params
|
|
475
|
-
|
|
476
|
-
return `${url}/organizations/${organizationId}/providers/${provider}/accounts/${accountId}/function-scan`
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
function createScanResourcesGetUrl(config, params, scanId) {
|
|
480
|
-
const url = getServerlessHost(config)
|
|
481
|
-
const { provider, accountId, organizationId } = params
|
|
482
|
-
const encodedScanId = encodeURIComponent(scanId)
|
|
483
|
-
|
|
484
|
-
return `${url}/organizations/${organizationId}/providers/${provider}/accounts/${accountId}/scans/${encodedScanId}/resources`
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
function createScanResultsGetUrl(config, params, scanId, functionArn) {
|
|
488
|
-
const url = getServerlessHost(config)
|
|
489
|
-
const encodedScanId = encodeURIComponent(scanId)
|
|
490
|
-
const encodedFunctionArn = encodeURIComponent(functionArn)
|
|
491
|
-
const { provider, accountId, organizationId } = params
|
|
492
|
-
|
|
493
|
-
return `${url}/organizations/${organizationId}/providers/${provider}/accounts/${accountId}/scans/${encodedScanId}/resources/${encodedFunctionArn}/results`
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
HTTPClient.prototype.postFunctionScan = async function postFunctionScan(
|
|
497
|
-
config,
|
|
498
|
-
params,
|
|
499
|
-
body
|
|
500
|
-
) {
|
|
501
|
-
const url = createScanFunctionPostUrl(config, params)
|
|
502
|
-
const options = { ...this.requestOptions, body, url }
|
|
503
|
-
|
|
504
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
HTTPClient.prototype.getScanResources = async function getScanResources(
|
|
508
|
-
config,
|
|
509
|
-
params,
|
|
510
|
-
scanId
|
|
511
|
-
) {
|
|
512
|
-
const url = createScanResourcesGetUrl(config, params, scanId)
|
|
513
|
-
const options = { ...this.requestOptions, url }
|
|
514
|
-
|
|
515
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
HTTPClient.prototype.getFunctionScanResults =
|
|
519
|
-
async function getFunctionScanResults(config, params, scanId, functionArn) {
|
|
520
|
-
const url = createScanResultsGetUrl(config, params, scanId, functionArn)
|
|
521
|
-
const options = { ...this.requestOptions, url }
|
|
522
|
-
|
|
523
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
HTTPClient.prototype.checkLibrary = function checkLibrary(data) {
|
|
527
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
528
|
-
let url = createDataUrl()
|
|
529
|
-
options.url = url
|
|
530
|
-
options.body = data
|
|
531
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
HTTPClient.prototype.getSbom = function getSbom(config, type) {
|
|
535
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
536
|
-
options.url = createSbomUrl(config, type)
|
|
537
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
HTTPClient.prototype.getSCASbom = function getSbom(config, type, reportId) {
|
|
541
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
542
|
-
options.url = createSCASbomUrl(config, type, reportId)
|
|
543
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
544
|
-
}
|
|
545
|
-
|
|
546
|
-
HTTPClient.prototype.getLatestVersion = function getLatestVersion() {
|
|
547
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
548
|
-
options.url =
|
|
549
|
-
'https://pkg.contrastsecurity.com/artifactory/cli/latest-version.txt'
|
|
550
|
-
return requestUtils.sendRequest({ method: 'get', options })
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
HTTPClient.prototype.postTelemetry = function postTelemetry(
|
|
554
|
-
config,
|
|
555
|
-
requestBody
|
|
556
|
-
) {
|
|
557
|
-
const options = _.cloneDeep(this.requestOptions)
|
|
558
|
-
options.url = createTelemetryEventUrl(config)
|
|
559
|
-
options.body = requestBody
|
|
560
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
// analytics
|
|
564
|
-
|
|
565
|
-
HTTPClient.prototype.postAnalyticsFunction = function (config, provider, body) {
|
|
566
|
-
const url = createAnalyticsFunctionPostUrl(config, provider)
|
|
567
|
-
const options = { ...this.requestOptions, body, url }
|
|
568
|
-
|
|
569
|
-
return requestUtils.sendRequest({ method: 'post', options })
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
const createAnalyticsFunctionPostUrl = (config, provider) => {
|
|
573
|
-
const url = getServerlessHost(config)
|
|
574
|
-
return `${url}/organizations/${config.organizationId}/providers/${provider}/analytics`
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
// scan
|
|
578
|
-
const createGetScanIdURL = config => {
|
|
579
|
-
return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/scans/`
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
const createScanResultsInstancesURL = (config, scanId) => {
|
|
583
|
-
return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/scans/${scanId}/result-instances/info?size=50&page=0&last=false&sort=severity,asc`
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
const createRawOutputURL = (config, scanId) => {
|
|
587
|
-
return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/scans/${scanId}/raw-output`
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
const createSpecificScanResultURL = (config, scanId) => {
|
|
591
|
-
return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/scans/${scanId}`
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
function createHarmonyUrl(config) {
|
|
595
|
-
return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}/code-artifacts`
|
|
596
|
-
}
|
|
597
|
-
|
|
598
|
-
function createHarmonyProjectsUrl(config) {
|
|
599
|
-
return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects`
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
function createScanProjectUrl(config) {
|
|
603
|
-
return `${config.host}/Contrast/api/sast/v1/organizations/${config.organizationId}/projects/${config.projectId}`
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
const createEventCollectorURL = (config, scanId) => {
|
|
607
|
-
return `${config.host}/Contrast/api/sast/organizations/${config.organizationId}/projects/${config.projectId}/scans/${scanId}/events`
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
const createGlobalPropertiesUrl = protocol => {
|
|
611
|
-
return `${protocol}/Contrast/api/ng/global/properties`
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
const pollForAuthUrl = () => {
|
|
615
|
-
return `${AUTH_CALLBACK_URL}/auth/credentials`
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
function createSnapshotURL(config) {
|
|
619
|
-
return `${config.host}/Contrast/api/ng/sca/organizations/${config.organizationId}/applications/${config.applicationId}/snapshots`
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
function createScaServiceReportURL(config, reportId) {
|
|
623
|
-
let baseUrl = `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/projects/${config.projectId}/libraries/reports/${reportId}`
|
|
624
|
-
baseUrl = config.ignoreDev ? baseUrl.concat('?nodesToInclude=PROD') : baseUrl
|
|
625
|
-
return baseUrl
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
function createScaServiceReportNoProjectIdURL(config, reportId) {
|
|
629
|
-
let baseUrl = `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/libraries/reports/${reportId}`
|
|
630
|
-
baseUrl = config.ignoreDev ? baseUrl.concat('?nodesToInclude=PROD') : baseUrl
|
|
631
|
-
return baseUrl
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
function createScaServiceReportStatusURL(config, reportId) {
|
|
635
|
-
return `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/libraries/ingests/${reportId}/status`
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
function createScaServiceNoProjectIdURL(config) {
|
|
639
|
-
return `${config.host}/Contrast/api/sca/organizations/${
|
|
640
|
-
config.organizationId
|
|
641
|
-
}/libraries/ingests/tree${
|
|
642
|
-
config.repo && config.language === 'JAVA?' ? 'incomplete=true' : ''
|
|
643
|
-
}`
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
// function createScaServiceIngestsURL(config) {
|
|
647
|
-
// return `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/applications/${config.applicationId}/libraries/ingests`
|
|
648
|
-
// }
|
|
649
|
-
|
|
650
|
-
function createScaServiceHealthURL(config) {
|
|
651
|
-
return `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/health`
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
function createScaServiceIngestURL(config) {
|
|
655
|
-
let optionalParams = []
|
|
656
|
-
config.repo && config.language === 'JAVA'
|
|
657
|
-
? optionalParams.push('incomplete=true')
|
|
658
|
-
: null
|
|
659
|
-
config.track ? optionalParams.push('persist=true') : null
|
|
660
|
-
|
|
661
|
-
let params = '?'
|
|
662
|
-
optionalParams.forEach(param => {
|
|
663
|
-
params = params.concat(param)
|
|
664
|
-
params = params.concat('&')
|
|
665
|
-
})
|
|
666
|
-
|
|
667
|
-
let baseUrl = `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/projects/${config.projectId}/libraries/ingests/tree${params}`
|
|
668
|
-
|
|
669
|
-
if (config.debug) {
|
|
670
|
-
console.log('createScaServiceIngestURL', baseUrl)
|
|
671
|
-
}
|
|
672
|
-
return baseUrl
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
const createAppCreateURL = config => {
|
|
676
|
-
return `${config.host}/Contrast/api/ng/sca/organizations/${config.organizationId}/applications/create`
|
|
677
|
-
}
|
|
678
|
-
|
|
679
|
-
const createAppNameUrl = config => {
|
|
680
|
-
return `${config.host}/Contrast/api/ng/${config.organizationId}/applications/name?filterText=${config.applicationName}`
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
const registerProjectGroupUrl = config => {
|
|
684
|
-
return `${config.host}/api/v4/organizations/${config.organizationId}/project-groups`
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
const registerProjectUrl = config => {
|
|
688
|
-
return `${config.host}/api/v4/organizations/${config.organizationId}/project-groups/${config.projectGroupId}/projects`
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
const retrieveRegisterOnCliServicesUrl = config => {
|
|
692
|
-
return `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/projects`
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
const retrieveSourcesUrl = (config, repositoryId) => {
|
|
696
|
-
return `${config.host}/projects/v1/repositories/${repositoryId}/sources`
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
const retrieveRepoByOrgAndGitURL = config => {
|
|
700
|
-
return `${config.host}/api/v4/organizations/${config.organizationId}/repositories/external-url?externalRepoUrl=${config.repositoryUrl}`
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
const retrieveProjectByOrganizationIdUrl = config => {
|
|
704
|
-
let baseUrl = `${config.host}/api/v4/organizations/${config.organizationId}/projects`
|
|
705
|
-
baseUrl = config.name
|
|
706
|
-
? baseUrl.concat(`?name=${config.name}`)
|
|
707
|
-
: baseUrl.concat(`?name=${config.fileName}`)
|
|
708
|
-
baseUrl = config.language
|
|
709
|
-
? baseUrl.concat(`&language=${config.language}`)
|
|
710
|
-
: baseUrl
|
|
711
|
-
baseUrl = config.language ? baseUrl.concat(`&source=SCA`) : baseUrl
|
|
712
|
-
baseUrl = config.repo
|
|
713
|
-
? baseUrl.concat(`&type=REPOSITORY`)
|
|
714
|
-
: baseUrl.concat(`&type=CLI`)
|
|
715
|
-
return baseUrl
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
const retrieveExistingGroupProjectsByOrgUrl = config => {
|
|
719
|
-
return `${config.host}/api/v4/organizations/${config.organizationId}/project-groups`
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
const retrieveExistingGroupProjectsByGroupIdUrl = (config, projectGroupId) => {
|
|
723
|
-
return `${config.host}/api/v4/organizations/${config.organizationId}/projects/${projectGroupId}/projects`
|
|
724
|
-
}
|
|
725
|
-
const retrieveExistingRepoUrl = config => {
|
|
726
|
-
return `${config.host}/projects/v4/organizations/${config.organizationId}/repositories`
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
function createRepositoryUrl(config) {
|
|
730
|
-
return `${config.host}/api/v4/organizations/${config.organizationId}/repositories`
|
|
731
|
-
}
|
|
732
|
-
|
|
733
|
-
function createRepoProjectUrl(config) {
|
|
734
|
-
return `${config.host}/api/v4/organizations/${config.organizationId}/repositories/${config.repositoryId}/projects`
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
function createLibraryVulnerabilitiesUrl(config) {
|
|
738
|
-
return `${config.host}/Contrast/api/ng/${config.organizationId}/libraries/artifactsByGroupNameVersion`
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
function createSpecificReportUrl(config, reportId, includeTree = false) {
|
|
742
|
-
return `${config.host}/Contrast/api/ng/sca/organizations/${config.organizationId}/applications/${config.applicationId}/reports/${reportId}?&includeTree=${includeTree}`
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
function createSpecificReportWithProdUrl(config, reportId, includeTree) {
|
|
746
|
-
return createSpecificReportUrl(config, reportId, includeTree).concat(
|
|
747
|
-
`&nodesToInclude=PROD`
|
|
748
|
-
)
|
|
749
|
-
}
|
|
750
|
-
|
|
751
|
-
function createSpecificReportStatusURL(config, reportId) {
|
|
752
|
-
return `${config.host}/Contrast/api/ng/sca/organizations/${config.organizationId}/applications/${config.applicationId}/snapshots/${reportId}/status`
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
function createDataUrl() {
|
|
756
|
-
return `https://ardy.contrastsecurity.com/production`
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
function createSbomUrl(config, type) {
|
|
760
|
-
return `${config.host}/Contrast/api/ng/${config.organizationId}/applications/${config.applicationId}/libraries/sbom/${type}`
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
function createSCASbomUrl(config, type, reportId) {
|
|
764
|
-
return config.projectId
|
|
765
|
-
? `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/projects/${config.projectId}/libraries/sbom/${reportId}?toolType=${type}`
|
|
766
|
-
: `${config.host}/Contrast/api/sca/organizations/${config.organizationId}/libraries/sbom/${reportId}?toolType=${type}`
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
function createTelemetryEventUrl(config) {
|
|
770
|
-
return `${config.host}/Contrast/api/sast/organizations/${config.organizationId}/cli`
|
|
771
|
-
}
|
|
772
|
-
|
|
773
|
-
module.exports = HTTPClient
|
|
774
|
-
module.exports.pollForAuthUrl = pollForAuthUrl
|
|
775
|
-
module.exports.getServerlessHost = getServerlessHost
|