Skip to content

Commit

Permalink
[ENG-51331]: Upgrade the node version to 18 in paws lib (#349)
Browse files Browse the repository at this point in the history
* upgrade the node version to 18

* upgrade the node version in code-coverange
  • Loading branch information
rakhimundhada15 committed Sep 21, 2023
1 parent 5a22aec commit bdc5f80
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 63 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ jobs:

- uses: actions/checkout@v3

- name: Use Node.js 14.x
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 14.x
node-version: 18.x

- name: make test-all
run: |
Expand Down
9 changes: 9 additions & 0 deletions cfn/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,3 +114,12 @@ Each user can create only five access keys. If a "limit exceeded" response appea

- [Alert Logic AIMs service API](https://console.cloudinsight.alertlogic.com/api/aims/)
- [How to monitor AWS Lambda functions](http://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html)

# Step to test in aws playground account(352283894008)
- In local add some mapping under SharedPrefix which you going to used while deploying the paws-shared-resources.template(https://algithub.pd.alertlogic.net/defender/paws-collectors-deploy-pipeline/blob/integration/cfn/paws-shared-resources.template#L37)

- Create the new stack with the paws-shared-resources.template which will created all the shared resources.

- Deploye the paws-collector-shared.template by providing all the existing value from paws-shared-resources.template *outputs* and fill remaining value as per collector requirement.

**Note:** paws-collector.template is not used in integration and production. It can also be used to deploy individual collector but might be missed some functionality.
2 changes: 1 addition & 1 deletion cfn/paws-collector-shared.template
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@
},
"Architectures": ["arm64"],
"Handler":"index.handler",
"Runtime":"nodejs14.x",
"Runtime":"nodejs18.x",
"MemorySize": { "Ref" : "CollectorFunctionMemorySize" },
"Timeout": { "Ref" : "CollectorFunctionTimeout" },
"Environment":{
Expand Down
119 changes: 64 additions & 55 deletions cfn/paws-collector.template
Original file line number Diff line number Diff line change
Expand Up @@ -458,43 +458,49 @@
"Fn::Join": [
"",
[
"const AWS = require('aws-sdk');\n",
"const { KMSClient, EncryptCommand } = require('@aws-sdk/client-kms');\n",
"const response = require('./cfn-response');\n",
"\n",
"\n",
"function encrypt(event, context) {\n",
"async function encrypt(event, context) {\n",
" const params = {\n",
" KeyId: event.ResourceProperties.KeyId,\n",
" Plaintext: event.ResourceProperties.Plaintext\n",
" Plaintext: new TextEncoder().encode(event.ResourceProperties.Plaintext)\n",
" };\n",
" const kms = new AWS.KMS();\n",
" kms.encrypt(params, function(err, data) {\n",
" if (err) {\n",
" console.log(err, err.stack); // an error occurred\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
" var base64 = new Buffer(data.CiphertextBlob).toString('base64');\n",
" var responseData = {\n",
" EncryptedText : base64\n",
" };\n",
" return response.send(event, context, response.SUCCESS, responseData);\n",
" });\n",
" const kms = new KMSClient({});\n",
" try{\n",
" const encryptParams = new EncryptCommand(params);\n",
" const data = await kms.send(encryptParams);\n",
" if(data.CiphertextBlob){\n",
" var base64 = Buffer.from(data.CiphertextBlob).toString('base64');\n",
" var responseData = {\n",
" EncryptedText : base64\n",
" };\n",
" return response.send(event, context, response.SUCCESS, responseData);\n",
" } else {\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
" } catch(err) {\n",
" console.log(err, err.stack); // an error occurred\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
"}\n",
"\n",
"\n",
"exports.handler = (event, context, callback) => {\n",
"exports.handler = async(event, context, callback) => {\n",
" if (event.ResourceType == 'AWS::CloudFormation::CustomResource' &&\n",
" (event.RequestType == 'Create' || event.RequestType == 'Update')) {\n",
" return encrypt(event, context);\n",
" }\n",
" await encrypt(event, context);\n",
" } else {\n",
" return response.send(event, context, response.SUCCESS);\n",
" }\n",
"}"
]
]
}
},
"Handler":"index.handler",
"Runtime":"nodejs14.x",
"Runtime":"nodejs18.x",
"MemorySize":128,
"Timeout": 5,
"Tags": [
Expand Down Expand Up @@ -524,11 +530,11 @@
"Fn::Join": [
"",
[
"const AWS = require('aws-sdk');\n",
"const { SSMClient, PutParameterCommand, DeleteParameterCommand} = require('@aws-sdk/client-ssm');\n",
"const response = require('./cfn-response');\n",
"\n",
"\n",
"function createSSMParam(event, context) {\n",
"async function createSSMParam(event, context) {\n",
" var params = {\n",
" Name: event.ResourceProperties.Name,\n",
" Type: 'SecureString',\n",
Expand All @@ -537,18 +543,19 @@
" Tier: event.ResourceProperties.Tier,\n",
" Tags: event.ResourceProperties.Tags",
" };\n",
" const ssm = new AWS.SSM();\n",
" ssm.putParameter(params, function(err, data) {\n",
" if (err) {\n",
" console.log(err, err.stack); // an error occurred\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
" data.PawsSecretParamName = params.Name\n",
" return response.send(event, context, response.SUCCESS, data, params.Name);\n",
" });\n",
" const ssm = new SSMClient({});\n",
" try {\n",
" const command = new PutParameterCommand(params);\n",
" const data = await ssm.send(command);\n",
" data.PawsSecretParamName = params.Name;\n",
" return response.send(event, context, response.SUCCESS, data, params.Name);\n",
" } catch(err){\n",
" console.log(err, err.stack); // an error occurred\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
"}\n",
"\n",
"function updateSSMParam(event, context) {\n",
"async function updateSSMParam(event, context) {\n",
" var params = {\n",
" Name: event.ResourceProperties.Name,\n",
" Type: 'SecureString',\n",
Expand All @@ -557,41 +564,43 @@
" Tier: event.ResourceProperties.Tier,\n",
" Overwrite: true",
" };\n",
" const ssm = new AWS.SSM();\n",
" ssm.putParameter(params, function(err, data) {\n",
" if (err) {\n",
" console.log(err, err.stack); // an error occurred\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
" data.PawsSecretParamName = params.Name\n",
" return response.send(event, context, response.SUCCESS, data, params.Name);\n",
" });\n",
" const ssm = new SSMClient({});\n",
" try {\n",
" const command = new PutParameterCommand(params);\n",
" const data = await ssm.send(command);\n",
" data.PawsSecretParamName = params.Name;\n",
" return response.send(event, context, response.SUCCESS, data, params.Name);\n",
" } catch(err){\n",
" console.log(err, err.stack); // an error occurred\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
"}\n",
"\n",
"function deleteSSMParam(event, context) {\n",
"async function deleteSSMParam(event, context) {\n",
" var params = {\n",
" Name: event.ResourceProperties.Name\n",
" };\n",
" const ssm = new AWS.SSM();\n",
" ssm.deleteParameter(params, function(err, data) {\n",
" if (err) {\n",
" console.log(err, err.stack); // an error occurred\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
" return response.send(event, context, response.SUCCESS, data);\n",
" });\n",
" const ssm = new SSMClient({});\n",
" try {\n",
" const command = new DeleteParameterCommand(params);\n",
" const data = await ssm.send(command);\n",
" return response.send(event, context, response.SUCCESS, data);\n",
" } catch(err){\n",
" console.log(err, err.stack); // an error occurred\n",
" return response.send(event, context, response.FAILED);\n",
" }\n",
"}\n",
"\n",
"exports.handler = (event, context, callback) => {\n",
"exports.handler = async (event, context, callback) => {\n",
" if (event.ResourceType == 'AWS::CloudFormation::CustomResource' &&\n",
" event.RequestType == 'Create') {\n",
" return createSSMParam(event, context);\n",
" await createSSMParam(event, context);\n",
" } else if (event.ResourceType == 'AWS::CloudFormation::CustomResource' &&\n",
" event.RequestType == 'Update') {\n",
" return updateSSMParam(event, context);\n",
" await updateSSMParam(event, context);\n",
" } else if (event.ResourceType == 'AWS::CloudFormation::CustomResource' &&\n",
" (event.RequestType == 'Delete')) {\n",
" return deleteSSMParam(event, context);\n",
" await deleteSSMParam(event, context);\n",
" }\n",
" return response.send(event, context, response.SUCCESS);\n",
"}"
Expand All @@ -600,7 +609,7 @@
}
},
"Handler":"index.handler",
"Runtime":"nodejs14.x",
"Runtime":"nodejs18.x",
"MemorySize":128,
"Timeout": 5,
"Tags": [
Expand Down Expand Up @@ -739,7 +748,7 @@
},
"Architectures": ["arm64"],
"Handler":"index.handler",
"Runtime":"nodejs14.x",
"Runtime":"nodejs18.x",
"MemorySize": { "Ref" : "CollectorFunctionMemorySize" },
"Timeout": { "Ref" : "CollectorFunctionTimeout" },
"Environment":{
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@alertlogic/paws-collector",
"version": "2.1.20",
"version": "2.1.21",
"license": "MIT",
"description": "Alert Logic AWS based API Poll Log Collector Library",
"repository": {
Expand All @@ -21,7 +21,6 @@
"rel": "npm publish --access=public"
},
"devDependencies": {
"aws-sdk": "*",
"aws-sdk-mock": "*",
"clone": "*",
"jshint": "^2.13.6",
Expand All @@ -32,7 +31,8 @@
"yargs": "^17.6.2"
},
"dependencies": {
"@alertlogic/al-aws-collector-js": "4.1.20",
"@alertlogic/al-aws-collector-js": "4.1.22",
"aws-sdk": "*",
"async": "^3.2.4",
"datadog-lambda-js": "^6.85.0",
"debug": "^4.3.4",
Expand Down
4 changes: 2 additions & 2 deletions ps_spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ stages:
- pull_request
- pull_request:
trigger_phrase: test it
image: node:14
image: node:18
compute_size: small
commands:
- make test
Expand All @@ -17,7 +17,7 @@ stages:
name: Master Push - Publish
when:
- push: ['master']
image: node:14
image: node:18
compute_size: small
commands:
- |
Expand Down

0 comments on commit bdc5f80

Please sign in to comment.