Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
7b8a5eb
Azure/Storage-Account-Public-Network-Access
Nov 7, 2024
06f9ed7
Azure/Storage-Account-Public-Network-Access/added check for secured p…
Nov 7, 2024
18251d5
syncing with saas
alphadev4 Nov 8, 2024
9757849
Merge branch 'master' into bundles_sync/08_11_24
alphadev4 Nov 8, 2024
981b0df
bundles_sync/08_11_24
alphadev4 Nov 8, 2024
8107bd5
bundles_sync/08_11_24
alphadev4 Nov 8, 2024
b4cda5c
Update plugins/azure/storageaccounts/storageAccountPublicNetworkAcces…
alphadev4 Nov 8, 2024
91162e5
bundles_sync/08_11_24
alphadev4 Nov 11, 2024
8a800d0
bundles_sync/08_11_24
alphadev4 Nov 11, 2024
be0e970
Merge pull request #2113 from aquasecurity/bundles_sync/08_11_24
alphadev4 Nov 11, 2024
084b653
Merge pull request #2112 from AkhtarAmir/Azure/Storage-Account-Public…
alphadev4 Nov 11, 2024
231f8da
Revised TDE Protectors Encrypted Plugin Update (#2101)
AkhtarAmir Nov 11, 2024
a3fef90
Enable defender for sql servers (#2102)
AkhtarAmir Nov 11, 2024
4d74632
Revised diskByokEncryptionEnabled (#2103)
AkhtarAmir Nov 11, 2024
cb73ff7
Revised unAttachedDiskByokEncryptionEnabled (#2104)
AkhtarAmir Nov 11, 2024
eaad9c4
Revised dbTDEEnabled (#2110)
AkhtarAmir Nov 11, 2024
877c8e1
Revised keyVaultSecretExpiryNonRbac (#2109)
AkhtarAmir Nov 11, 2024
e42c809
Revised keyVaultSecretExpiry (#2108)
AkhtarAmir Nov 11, 2024
f75a336
Revised keyVaultKeyExpiryNonRbac (2) (#2106)
AkhtarAmir Nov 11, 2024
4af0f44
Revised keyVaultKeyExpiry (#2105)
AkhtarAmir Nov 11, 2024
de7c35a
TLS Version Changes (#2115)
AkhtarAmir Nov 11, 2024
03a35f2
Enhance network exposure checks in AWS functions
giorod3 Dec 2, 2024
deb7fe4
updating logic
giorod3 Dec 2, 2024
c6e59a2
fixing lint
giorod3 Dec 2, 2024
d8de758
fixing failed tests
giorod3 Dec 2, 2024
2b5681f
fixing logic
giorod3 Dec 3, 2024
8a4726b
lint
giorod3 Dec 3, 2024
e0c0c33
excluding function URL from vpc checks and adding load balancer and m…
giorod3 Dec 3, 2024
dadb9c3
lint
giorod3 Dec 3, 2024
7358797
Merge pull request #2117 from aquasecurity/lambda_network_exposure
mehakseedat63 Dec 4, 2024
45d3007
syncing with saas
alphadev4 Jan 1, 2025
f5022a7
linting error fix
alphadev4 Jan 2, 2025
3e1811b
bundles_sync/01_01/pluginsPR
alphadev4 Jan 8, 2025
5370f01
Merge pull request #2119 from aquasecurity/bundles_sync/01_01/pluginsPR
mehakseedat63 Jan 9, 2025
8bb9b12
renaming internet exposure titles to network exposure (#2121)
AkhtarAmir Jan 15, 2025
a2139e2
listFindingV2 added
Khizer-aqua Jan 26, 2025
2dc58ec
listFindingV2 added
Jan 26, 2025
5e80aaa
listFindingV2 added
Jan 26, 2025
3569810
listFindingV2 added
Jan 27, 2025
61009d0
Merge branch 'update-access-analyzer-active-findings' into update-acc…
Jan 27, 2025
3d9db6f
Merge pull request #2124 from AkhtarAmir/update-access-analyzer-activ…
alphadev4 Jan 27, 2025
76579e4
added validation for suppress regex
Feb 3, 2025
42f18e6
lint fix
AkhtarAmir Feb 3, 2025
e8d16e0
lint fix
AkhtarAmir Feb 3, 2025
bfe40f9
lint fix
AkhtarAmir Feb 3, 2025
3523760
updated spec
AkhtarAmir Feb 3, 2025
ace17ed
iam role policies updated
Feb 4, 2025
09e7fa3
Merge pull request #2125 from AkhtarAmir/suppressionregexValidation
alphadev4 Feb 6, 2025
57a4bbd
plugin enhancement
Feb 11, 2025
0e4851c
plugin enhancement
Feb 11, 2025
0cdb1b2
plugin enhancement
Feb 11, 2025
6802dd4
Merge pull request #2126 from AkhtarAmir/update-iamRolePolicies
alphadev4 Feb 12, 2025
9315dae
update plugin to handle aws managed keys
Feb 24, 2025
e5fbb4e
Merge pull request #2129 from AkhtarAmir/update-videostreamDataEncryo…
alphadev4 Feb 25, 2025
556052f
feat(SAAS-28151 + SAAS-28108): remove unsupported code start plugins …
tzurielweisberg Feb 27, 2025
c4c8ad3
fix code spell
tzurielweisberg Feb 27, 2025
ba1ef65
f
tzurielweisberg Feb 27, 2025
2229a21
fix
tzurielweisberg Feb 27, 2025
e7c3f7a
fix
tzurielweisberg Feb 27, 2025
19b4271
Update plugins/aws/codestar/codestarValidRepoProviders.js
alphadev4 Feb 27, 2025
74ca959
Merge remote-tracking branch 'origin' into remove-codestar-and-fix-op…
tzurielweisberg Feb 27, 2025
9512e0a
Merge pull request #2130 from aquasecurity/remove-codestar-and-fix-op…
alphadev4 Feb 27, 2025
7f05d79
changing name to Internet Exposure
AkhtarAmir Mar 20, 2025
fcefa5e
Merge pull request #2134 from AkhtarAmir/NetworkExposureNameChange
alphadev4 Mar 20, 2025
48caaa7
Syncing with saas
Apr 29, 2025
1c3fab1
Syncing with saas
Apr 29, 2025
c179dd3
Syncing with saas
Apr 29, 2025
a845acb
Merge pull request #2137 from aquasecurity/sync/04-29
tzurielweisberg Apr 29, 2025
ac37769
Updated aksLatestVersion Plugin
Jun 23, 2025
53127de
Update plugins/azure/kubernetesservice/aksLatestVersion.js
alphadev4 Jun 23, 2025
0f17af7
Merge branch 'master' into aksLatestVersion-update
Jun 23, 2025
b3c83c1
Updated node version for test cases of lambdaOldRuntime plugin
Jun 23, 2025
1607c20
Merge pull request #2139 from AkhtarAmir/aksLatestVersion-update
alphadev4 Jun 23, 2025
04c7946
update plugins
Jul 17, 2025
cd620d4
Merge pull request #2140 from AkhtarAmir/feature/plugins-mysqlserver-…
alphadev4 Jul 18, 2025
7c075fa
azure/Public-access-plugins
Aug 1, 2025
1b91e29
Merge branch 'master' into Azure/Public-access-plugins
AkhtarAmir Aug 1, 2025
26f6b45
SLK-97863/Update-plugin-metadata
Aug 4, 2025
b126d6c
update plugin Event Hub Namespace public access
Aug 4, 2025
af9b382
update plugin Event Hub Namespace public access
Aug 4, 2025
15f1765
fix lint
Aug 4, 2025
36fa22b
Update helpers/azure/api.js
alphadev4 Aug 5, 2025
5cc0065
Apply suggestions from code review
alphadev4 Aug 5, 2025
f584f72
Azure/Public-access-plugins
Aug 5, 2025
4482647
Azure/Public-access-plugins
Aug 5, 2025
6abc5aa
Azure/Public-access-plugins
Aug 5, 2025
87c66ac
Azure/Public-access-plugins
Aug 5, 2025
135bcda
Azure/Public-access-plugins
Aug 5, 2025
34f9c3b
add changes
Aug 5, 2025
79b1f00
syncing with saas
alphadev4 Aug 5, 2025
b105f51
Merge pull request #2146 from aquasecurity/sync_05/08
tzurielweisberg Aug 5, 2025
4cea089
Merge pull request #2144 from AkhtarAmir/plugin/event-hub-namespace-p…
alphadev4 Aug 5, 2025
94ab539
Merge pull request #2143 from AkhtarAmir/SLK-97863/azure-web-apps-update
alphadev4 Aug 5, 2025
e114025
Merge branch 'master' into Azure/Public-access-plugins
alphadev4 Aug 5, 2025
172e3fc
Merge pull request #2142 from AkhtarAmir/Azure/Public-access-plugins
alphadev4 Aug 5, 2025
ac79307
update plugin
Aug 20, 2025
e8e02ee
Merge pull request #2150 from AkhtarAmir/feature/pluginkeyVaultPublic…
alphadev4 Aug 21, 2025
11bdaba
update active directory to entra id
Oct 6, 2025
5f95cda
Merge pull request #2156 from AkhtarAmir/migrate-aad-to-entra-id
alphadev4 Oct 6, 2025
c8abde9
syncing with saas
alphadev4 Nov 25, 2025
50a0ffb
syncing with saas
alphadev4 Nov 25, 2025
9d788ca
Update plugins/google/compute/instanceLeastPrivilege.js
alphadev4 Nov 25, 2025
a6d5e52
asgTagPropagation plugin
SyedKhizerAli Nov 26, 2025
0eb1924
asgTagPropagation plugin
SyedKhizerAli Nov 26, 2025
7231f55
asgTagPropagation spec fixes
SyedKhizerAli Nov 28, 2025
e10b098
Update plugins/aws/autoscaling/asgTagPropagation.js
SyedKhizerAli Nov 28, 2025
309cdbc
Update plugins/aws/autoscaling/asgTagPropagation.js
SyedKhizerAli Nov 28, 2025
d90701b
asgTagPropagation message updates
SyedKhizerAli Nov 28, 2025
bcf968c
Merge pull request #2163 from aquasecurity/sync_25_11
alphadev4 Dec 1, 2025
1742606
add app service plugin
HamzaAziz-1 Dec 1, 2025
4ff5f31
add plugin ami naming convention
HamzaAziz-1 Nov 28, 2025
09765b4
add changes
HamzaAziz-1 Nov 28, 2025
c65188c
update plugin
HamzaAziz-1 Dec 1, 2025
24f81ae
addd new plugin oldAmi
HamzaAziz-1 Nov 27, 2025
027cbb9
addd cloud functions v2 plugins
HamzaAziz-1 Nov 25, 2025
0ae0f47
add plugins
HamzaAziz-1 Nov 26, 2025
89369db
add gcp func v2 plugins
HamzaAziz-1 Nov 26, 2025
fa21b9a
update plugin
HamzaAziz-1 Nov 28, 2025
3bc0354
update plugin name
HamzaAziz-1 Dec 1, 2025
aa8d924
Update plugins/aws/autoscaling/asgTagPropagation.js
alphadev4 Dec 2, 2025
436a4f3
Apply suggestions from code review
alphadev4 Dec 2, 2025
4fdc048
fix lint
HamzaAziz-1 Dec 2, 2025
779f6cf
merge commit
SyedKhizerAli Dec 2, 2025
7f72a11
lint fix
SyedKhizerAli Dec 2, 2025
3aa6e92
lint fix
SyedKhizerAli Dec 2, 2025
9d346b4
doc db encryption in transit
saaib8 Dec 2, 2025
69d4a32
docdb audit logging
saaib8 Dec 2, 2025
9a0445f
Update plugins/azure/appservice/appServicePublicAccess.js
alphadev4 Dec 3, 2025
d93be1f
result added for no fargate service
SyedKhizerAli Dec 3, 2025
322bd5b
result fails added in case of service describe fails
SyedKhizerAli Dec 3, 2025
099ffad
result updated in case of service describe fails
SyedKhizerAli Dec 3, 2025
d709eb2
spec updated
SyedKhizerAli Dec 3, 2025
4956195
plugin and spec updated
SyedKhizerAli Dec 3, 2025
d5ad05a
spec updates
SyedKhizerAli Dec 3, 2025
02a506d
Update plugins/aws/documentDB/docdbAuditLoggingEnabled.js
alphadev4 Dec 4, 2025
67b7b35
updated plugin
SyedKhizerAli Dec 4, 2025
1a8ecb5
plugin updated
SyedKhizerAli Dec 4, 2025
5a04a1b
plugin updated
SyedKhizerAli Dec 4, 2025
2001a1a
plugin updated
SyedKhizerAli Dec 4, 2025
c3bd4c4
lint fix
SyedKhizerAli Dec 4, 2025
ba7b27d
lint fix
SyedKhizerAli Dec 4, 2025
64e3c48
Merge pull request #2165 from SyedKhizerAli/asgTagPropagation
alphadev4 Dec 4, 2025
4c8bc8d
Merge pull request #2166 from HamzaAziz-1/gcp-cloud-functions-v2-plugins
alphadev4 Dec 4, 2025
829c1bf
Merge pull request #2170 from HamzaAziz-1/old-ami
alphadev4 Dec 4, 2025
183ea85
Merge branch 'master' into ami-naming-convention
alphadev4 Dec 4, 2025
08812d6
Merge pull request #2172 from HamzaAziz-1/ami-naming-convention
alphadev4 Dec 4, 2025
c8775e5
Merge pull request #2175 from HamzaAziz-1/azure-app-service-public-ac…
alphadev4 Dec 4, 2025
8050328
Merge pull request #2178 from SyedKhizerAli/docdb-audit-logging-enabled
alphadev4 Dec 4, 2025
1998228
Merge branch 'master' into docdb-Encryption-in-transit
alphadev4 Dec 4, 2025
2018303
Merge pull request #2177 from SyedKhizerAli/docdb-Encryption-in-transit
alphadev4 Dec 4, 2025
43494ac
Update plugins/aws/ecs/ecsFargatePlatformVersion.js
alphadev4 Dec 4, 2025
6b582fb
Merge pull request #2171 from SyedKhizerAli/SAAS-31385-ecsFargatePlat…
alphadev4 Dec 4, 2025
1214cc5
filename updates
SyedKhizerAli Dec 4, 2025
bf334e6
Delete plugins/aws/ecs/ecsServiceAssignPublicIpDisabled.js
alphadev4 Dec 4, 2025
ed71870
Delete plugins/aws/ecs/ecsServiceAssignPublicIpDisabled.spec.js
alphadev4 Dec 4, 2025
4831752
Update exports.js
alphadev4 Dec 4, 2025
65814aa
Update plugins/aws/ecs/ecsServicePublicIpDisabled.js
alphadev4 Dec 4, 2025
ce2bc6d
Update plugins/aws/ecs/ecsServicePublicIpDisabled.js
alphadev4 Dec 4, 2025
07d8f60
Merge branch 'master' into SAAS-31375/ecsServiceAssignPublicIpDisabled
alphadev4 Dec 4, 2025
4b5bbd8
Merge pull request #2169 from SyedKhizerAli/SAAS-31375/ecsServiceAssi…
alphadev4 Dec 4, 2025
d3daa63
Merge branch 'accuknox:master' into origin/new-sync
Chirag-CG Feb 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,27 @@ FROM node:lts-alpine3.12
# You could also use this to specify a particular version number.
ARG PACKAGENAME=cloudsploit

# Create a non-root user and group
RUN addgroup -S cloudsploit && adduser -S cloudsploit -G cloudsploit

COPY . /var/scan/cloudsploit/

# Set the working directory to /var/scan
WORKDIR /var/scan

# Install cloudsploit/scan into the container using npm from NPM
RUN cd /var/scan \
&& npm init --yes \
RUN npm init --yes \
&& npm install ${PACKAGENAME} \
&& npm link /var/scan/cloudsploit
&& npm link /var/scan/cloudsploit \
&& chown -R cloudsploit:cloudsploit /var/scan

# Setup the container's path so that you can run cloudsploit directly
# in case someone wants to customize it when running the container.
ENV PATH "$PATH:/var/scan/node_modules/.bin"

# Switch to non-root user
USER cloudsploit

# By default, run the scan. CMD allows consumers of the container to supply
# command line arguments to the run command to control how this executes.
# Thus, you can use the parameters that you would normally give to index.js
Expand Down
49 changes: 49 additions & 0 deletions collectors/aws/accessanalyzer/listFindingsV2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
var AWS = require('aws-sdk');
var async = require('async');
var helpers = require(__dirname + '/../../../helpers/aws');

module.exports = function(AWSConfig, collection, retries, callback) {
var accessanalyzer = new AWS.AccessAnalyzer(AWSConfig);
async.eachLimit(collection.accessanalyzer.listAnalyzers[AWSConfig.region].data, 15, function(analyzer, cb) {
collection.accessanalyzer.listFindingsV2[AWSConfig.region][analyzer.arn] = {};
var params = {
analyzerArn: analyzer.arn
};

var paginating = false;
var paginateCb = function(err, data) {
if (err) collection.accessanalyzer.listFindingsV2[AWSConfig.region][analyzer.arn].err = err;

if (!data) return cb();

if (paginating && data.findings && data.findings.length &&
collection.accessanalyzer.listFindingsV2[AWSConfig.region][analyzer.arn].data.findings &&
collection.accessanalyzer.listFindingsV2[AWSConfig.region][analyzer.arn].data.findings.length) {
collection.accessanalyzer.listFindingsV2[AWSConfig.region][analyzer.arn].data.findings = collection.accessanalyzer.listFindingsV2[AWSConfig.region][analyzer.arn].data.findings.concat(data.findings);
} else {
collection.accessanalyzer.listFindingsV2[AWSConfig.region][analyzer.arn].data = data;
}

if (data.nextToken && data.nextToken.length) {
paginating = true;
return execute(data.nextToken);
}

cb();
};

function execute(nextToken) { // eslint-disable-line no-inner-declarations
var localParams = JSON.parse(JSON.stringify(params || {}));
if (nextToken) localParams['nextToken'] = nextToken;
if (nextToken) {
helpers.makeCustomCollectorCall(accessanalyzer, 'listFindingsV2', localParams, retries, null, null, null, paginateCb);
} else {
helpers.makeCustomCollectorCall(accessanalyzer, 'listFindingsV2', params, retries, null, null, null, paginateCb);
}
}

execute();
}, function(){
callback();
});
};
3 changes: 2 additions & 1 deletion collectors/aws/apigateway/getClientCertificate.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ module.exports = function(AWSConfig, collection, retries, callback) {
collection.apigateway.getClientCertificate[AWSConfig.region][stage.clientCertificateId].err = err;
return pCb();
}
collection.apigateway.getClientCertificate[AWSConfig.region][stage.clientCertificateId].data = data;
if (data) collection.apigateway.getClientCertificate[AWSConfig.region][stage.clientCertificateId].data = data;

pCb();
});

Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/apigateway/getIntegration.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
return mCb();
}

collection.apigateway.getIntegration[AWSConfig.region][api.id][resource.id][methodKey].data = data;
if (data) collection.apigateway.getIntegration[AWSConfig.region][api.id][resource.id][methodKey].data = data;
mCb();
});
}, function(){
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/appmesh/describeVirtualGateway.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
collection.appmesh.describeVirtualGateway[AWSConfig.region][gateway.virtualGatewayName].err = err;
}

collection.appmesh.describeVirtualGateway[AWSConfig.region][gateway.virtualGatewayName].data = data;
if (data) collection.appmesh.describeVirtualGateway[AWSConfig.region][gateway.virtualGatewayName].data = data;
pCb();
});

Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/autoscaling/describeLaunchConfigurations.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.autoscaling.describeLaunchConfigurations[AWSConfig.region][asg.AutoScalingGroupARN].err = err;
}
collection.autoscaling.describeLaunchConfigurations[AWSConfig.region][asg.AutoScalingGroupARN].data = data;
if (data) collection.autoscaling.describeLaunchConfigurations[AWSConfig.region][asg.AutoScalingGroupARN].data = data;

cb();
});
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/cloudfront/getDistribution.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.cloudfront.getDistribution[AWSConfig.region][distribution.Id].err = err;
}
collection.cloudfront.getDistribution[AWSConfig.region][distribution.Id].data = data;
if (data) collection.cloudfront.getDistribution[AWSConfig.region][distribution.Id].data = data;
cb();
});

Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/cloudwatch/getEcMetricStatistics.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.cloudwatch.getEcMetricStatistics[AWSConfig.region][cluster.CacheClusterId].err = err;
}
collection.cloudwatch.getEcMetricStatistics[AWSConfig.region][cluster.CacheClusterId].data = data;
if (data) collection.cloudwatch.getEcMetricStatistics[AWSConfig.region][cluster.CacheClusterId].data = data;
cb();
});

Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/cloudwatch/getEsMetricStatistics.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.cloudwatch.getEsMetricStatistics[AWSConfig.region][domain.DomainName].err = err;
}
collection.cloudwatch.getEsMetricStatistics[AWSConfig.region][domain.DomainName].data = data;
if (data) collection.cloudwatch.getEsMetricStatistics[AWSConfig.region][domain.DomainName].data = data;
cb();
});

Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/cloudwatch/getRdsMetricStatistics.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.cloudwatch.getRdsMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].err = err;
}
collection.cloudwatch.getRdsMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].data = data;
if (data) collection.cloudwatch.getRdsMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].data = data;
cb();
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.cloudwatch.getRdsReadIOPSMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].err = err;
}
collection.cloudwatch.getRdsReadIOPSMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].data = data;
if (data) collection.cloudwatch.getRdsReadIOPSMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].data = data;
cb();
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.cloudwatch.getRdsWriteIOPSMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].err = err;
}
collection.cloudwatch.getRdsWriteIOPSMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].data = data;
if (data) collection.cloudwatch.getRdsWriteIOPSMetricStatistics[AWSConfig.region][instance.DBInstanceIdentifier].data = data;
cb();
});

Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/cloudwatch/getredshiftMetricStatistics.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.cloudwatch.getredshiftMetricStatistics[AWSConfig.region][cluster.ClusterIdentifier].err = err;
}
collection.cloudwatch.getredshiftMetricStatistics[AWSConfig.region][cluster.ClusterIdentifier].data = data;
if (data) collection.cloudwatch.getredshiftMetricStatistics[AWSConfig.region][cluster.ClusterIdentifier].data = data;
cb();
});

Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/codebuild/batchGetProjects.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.codebuild.batchGetProjects[AWSConfig.region][project].err = err;
}
collection.codebuild.batchGetProjects[AWSConfig.region][project].data = data;
if (data) collection.codebuild.batchGetProjects[AWSConfig.region][project].data = data;
cb();
});
}, function(){
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/connect/instanceAttachmentStorageConfigs.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.connect.instanceAttachmentStorageConfigs[AWSConfig.region][instance.Id].err = err;
}
collection.connect.instanceAttachmentStorageConfigs[AWSConfig.region][instance.Id].data = data;
if (data) collection.connect.instanceAttachmentStorageConfigs[AWSConfig.region][instance.Id].data = data;
cb();
});
}, function(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.connect.listInstanceCallRecordingStorageConfigs[AWSConfig.region][instance.Id].err = err;
}
collection.connect.listInstanceCallRecordingStorageConfigs[AWSConfig.region][instance.Id].data = data;
if (data) collection.connect.listInstanceCallRecordingStorageConfigs[AWSConfig.region][instance.Id].data = data;
cb();
});
}, function(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.connect.listInstanceChatTranscriptStorageConfigs[AWSConfig.region][instance.Id].err = err;
}
collection.connect.listInstanceChatTranscriptStorageConfigs[AWSConfig.region][instance.Id].data = data;
if (data) collection.connect.listInstanceChatTranscriptStorageConfigs[AWSConfig.region][instance.Id].data = data;
cb();
});
}, function(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.connect.listInstanceExportedReportStorageConfigs[AWSConfig.region][instance.Id].err = err;
}
collection.connect.listInstanceExportedReportStorageConfigs[AWSConfig.region][instance.Id].data = data;
if (data) collection.connect.listInstanceExportedReportStorageConfigs[AWSConfig.region][instance.Id].data = data;
cb();
});
}, function(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.connect.listInstanceMediaStreamStorageConfigs[AWSConfig.region][instance.Id].err = err;
}
collection.connect.listInstanceMediaStreamStorageConfigs[AWSConfig.region][instance.Id].data = data;
if (data) collection.connect.listInstanceMediaStreamStorageConfigs[AWSConfig.region][instance.Id].data = data;
cb();
});
}, function(){
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/dynamodb/describeContinuousBackups.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.dynamodb.describeContinuousBackups[AWSConfig.region][table].err = err;
}
collection.dynamodb.describeContinuousBackups[AWSConfig.region][table].data = data;
if (data) collection.dynamodb.describeContinuousBackups[AWSConfig.region][table].data = data;
cb();
});
}, function(){
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/dynamodb/describeTable.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.dynamodb.describeTable[AWSConfig.region][table].err = err;
}
collection.dynamodb.describeTable[AWSConfig.region][table].data = data;
if (data) collection.dynamodb.describeTable[AWSConfig.region][table].data = data;
cb();
});
}, function(){
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/dynamodb/listBackups.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.dynamodb.listBackups[AWSConfig.region][table].err = err;
}
collection.dynamodb.listBackups[AWSConfig.region][table].data = data;
if (data) collection.dynamodb.listBackups[AWSConfig.region][table].data = data;
cb();
});
}, function(){
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/ec2/describeSnapshotAttribute.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.ec2.describeSnapshotAttribute[AWSConfig.region][snapshot.SnapshotId].err = err;
}
collection.ec2.describeSnapshotAttribute[AWSConfig.region][snapshot.SnapshotId].data = data;
if (data) collection.ec2.describeSnapshotAttribute[AWSConfig.region][snapshot.SnapshotId].data = data;
cb();
});
}, function(){
Expand Down
21 changes: 15 additions & 6 deletions collectors/aws/ec2/describeSnapshots.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ module.exports = function(AWSConfig, collection, retries, callback) {
var ec2 = new AWS.EC2(AWSConfig);
var sts = new AWS.STS(AWSConfig);
var paginating = false;
var maxSnapshots = 30000; // Limit the collection to 30,000 snapshots
var createdTime = new Date();
createdTime.setDate(createdTime.getDate() - 30);

helpers.makeCustomCollectorCall(sts, 'getCallerIdentity', {}, retries, null, null, null, function(stsErr, stsData) {
if (stsErr || !stsData.Account) {
Expand Down Expand Up @@ -38,16 +41,22 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.ec2.describeSnapshots[AWSConfig.region].err = err;
} else if (data) {
if (paginating && data.Snapshots && data.Snapshots.length &&
const filteredSnapshots = data.Snapshots? data.Snapshots.filter(snapshot => {
return new Date(snapshot.StartTime) > createdTime;
}) : [];

if (paginating && filteredSnapshots && filteredSnapshots.length &&
collection.ec2.describeSnapshots[AWSConfig.region].data &&
collection.ec2.describeSnapshots[AWSConfig.region].data.length) {
collection.ec2.describeSnapshots[AWSConfig.region].data = collection.ec2.describeSnapshots[AWSConfig.region].data.concat(data.Snapshots);
collection.ec2.describeSnapshots[AWSConfig.region].data.length &&
collection.ec2.describeSnapshots[AWSConfig.region].data.length < maxSnapshots) {
collection.ec2.describeSnapshots[AWSConfig.region].data = collection.ec2.describeSnapshots[AWSConfig.region].data.concat(filteredSnapshots);
} else if (!paginating) {
collection.ec2.describeSnapshots[AWSConfig.region].data = data.Snapshots;
collection.ec2.describeSnapshots[AWSConfig.region].data = filteredSnapshots;
}
if (data.NextToken &&
if (data.NextToken && data.NextToken.length &&
collection.ec2.describeSnapshots[AWSConfig.region].data &&
collection.ec2.describeSnapshots[AWSConfig.region].data.length) {
collection.ec2.describeSnapshots[AWSConfig.region].data.length &&
collection.ec2.describeSnapshots[AWSConfig.region].data.length < maxSnapshots) {
paginating = true;
return execute(data.NextToken);
}
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/ec2/describeSubnets.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
collection.ec2.describeSubnets[AWSConfig.region][vpc.VpcId].err = err;
}

collection.ec2.describeSubnets[AWSConfig.region][vpc.VpcId].data = data;
if (data) collection.ec2.describeSubnets[AWSConfig.region][vpc.VpcId].data = data;

cb();
});
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/ecs/describeCluster.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
collection.ecs.describeCluster[AWSConfig.region][cluster].err = err;
}

collection.ecs.describeCluster[AWSConfig.region][cluster].data = data;
if (data) collection.ecs.describeCluster[AWSConfig.region][cluster].data = data;

cb();
});
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/ecs/describeContainerInstances.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
collection.ecs.describeContainerInstances[AWSConfig.region][containerInstance].err = err;
}

collection.ecs.describeContainerInstances[AWSConfig.region][containerInstance].data = data;
if (data) collection.ecs.describeContainerInstances[AWSConfig.region][containerInstance].data = data;

ccb();
});
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/ecs/describeServices.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
collection.ecs.describeServices[AWSConfig.region][service].err = err;
}

collection.ecs.describeServices[AWSConfig.region][service].data = data;
if (data) collection.ecs.describeServices[AWSConfig.region][service].data = data;

ccb();
});
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/ecs/describeTasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
collection.ecs.describeTasks[AWSConfig.region][task].err = err;
}

collection.ecs.describeTasks[AWSConfig.region][task].data = data;
if (data) collection.ecs.describeTasks[AWSConfig.region][task].data = data;

ccb();
});
Expand Down
5 changes: 2 additions & 3 deletions collectors/aws/ecs/listTasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@ module.exports = function(AWSConfig, collection, retries, callback) {
helpers.makeCustomCollectorCall(ecs, 'listTasks', params, retries, null, null, null, function(err, data) {
if (err) {
collection.ecs.listTasks[AWSConfig.region][cluster].err = err;
} else if (data && data.taskArns) {
collection.ecs.listTasks[AWSConfig.region][cluster].data = data.taskArns;
}

collection.ecs.listTasks[AWSConfig.region][cluster].data = data.taskArns;

cb();
});
}, function(){
Expand Down
2 changes: 1 addition & 1 deletion collectors/aws/elasticache/describeCacheSubnetGroups.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = function(AWSConfig, collection, retries, callback) {
if (err) {
collection.elasticache.describeCacheSubnetGroups[AWSConfig.region][cluster.CacheSubnetGroupName].err = err;
}
collection.elasticache.describeCacheSubnetGroups[AWSConfig.region][cluster.CacheSubnetGroupName].data = data;
if (data) collection.elasticache.describeCacheSubnetGroups[AWSConfig.region][cluster.CacheSubnetGroupName].data = data;
cb();
});
}, function(){
Expand Down
Loading
Loading