UNPKG

aws-secret-manager-client

Version:
177 lines (126 loc) 5.14 kB
# AWS Secret Manager client for Node.js A package contains Asynchronous and Synchronous functions to perform oprations on AWS Secret Manager. [![NPM](https://nodei.co/npm/aws-secret-manager-client.png?downloads=true)](https://www.npmjs.com/package/aws-secret-manager-client/) ## Features - Fetch Secret (Async/Sync) - Create Secret (Async/Sync) - Update Secret (Async/Sync) - Delete Secret (Async/Sync) - Rotate Secret (Async/Sync) - Cancel Rotate Secret (Async/Sync) ## Installation ```bash npm install aws-secret-manager-client --save ``` ## Usage/Examples ``aws-secret-manager-client`` is wrapper function for perform aws secret manager operations asynchronously/synchronously, secret manager api basically return promises, for behave like a synchronous function/api we have used [deasync-promise](https://www.npmjs.com/package/deasync-promise) which internally transform async function to sync. ```javascript const app = require("express")(); const SecretsManager = require("aws-secret-manager-client"); const client = new SecretsManager({ region: "us-east-1" }); // asynchronous app.get("/getsecret", async (req, res) => { const response = await client.getSecret("client1/dev/secrets"); res.send({ status: 200, data: response, }); }); // synchronous app.get("/getsecretsync", (req, res) => { const response = client.getSecretSync("client1/dev/secrets"); res.send({ status: 200, data: response, }); }); // synchronous function calling function getSecretsviafunction(clientId) { const data = client.getSecretSync(clientId); return JSON.parse(data.SecretString); } console.log(getSecretsviafunction("client1/dev/secrets")); // asyncronous app.post("/createsecret", async (req, res) => { let params = { Description: "My test database secret created with the CLI", Name: "MyTestDatabaseSecret", SecretString: '{"username":"dextor","password":"EXAMPLE-PASSWORD"}', }; const response = await client.createSecret(params); res.send({ status: 200, data: response, }); }); // synchronous app.get("/createsecretsync", (req, res) => { let params = { Description: "My test database secret created with the CLI", Name: "MyTestDatabaseSecret 1", SecretString: '{"username":"dextor","password":"EXAMPLE-PASSWORD"}', }; const response = client.createSecretSync(params); res.send({ status: 200, data: response, }); }); // synchronous function calling function createSecretsviafunction(params) { const data = client.createSecretSync(params); return data; } let params = { Description: "My test database secret created with the CLI", Name: "MyTestDatabaseSecret 2", SecretString: '{"username":"dextor","password":"EXAMPLE-PASSWORD"}', }; console.log(createSecretsviafunction(params)); // Server const port = 5001; app.listen(port,()=>{ console.log(`🚀 Something is cooking on port ${port} 🚀`) }); ``` ## API Reference #### Retrieve Secret ``` client.getSecret(SecretId) || client.getSecretSync(SecretId) ``` | Parameter | Type | Description | | :-------- | :------- | :------------------------- | | `SecretId` | `string` | **Required**. Your Secret Name | More Details :- https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SecretsManager.html#getSecretValue-property #### Create Secret ``` client.createSecret(params) || client.createSecretSync(params) ``` | Parameter | Type | Description | | :-------- | :------- | :-------------------------------- | | `Name` | `string` | **Required**. The name of the new secret. | | `ClientRequestToken` | `string` | **Optional**. [ SecretString or SecretBinary](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SecretsManager.html#createSecret-property). | | `Description` | `string` | **Required**. The description of the secret. | | `KmsKeyId` | `string` |**Optional** The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't include this field, Secrets Manager uses aws/secretsmanager. | More Details :- https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SecretsManager.html#createSecret-property #### Delete Secret ``` client.deleteSecret(SecretId) || client.deleteSecretSync(SecretId) ``` | Parameter | Type | Description | | :-------- | :------- | :------------------------- | | `SecretId` | `string` | **Required**. Your Secret Name | More Details :- https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SecretsManager.html#deleteSecret-property #### Update Secret ``` client.updateSecret(SecretId) || client.updateSecretSync(SecretId) ``` | Parameter | Type | Description | | :-------- | :------- | :------------------------- | | `SecretId` | `string` | **Required**. Your Secret Name | | `SecretString` | `string` | **Required**. "{JSON STRING WITH CREDENTIALS}" | More Details :- https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SecretsManager.html#updateSecret-property ## Author - [Aayush Sharma](https://www.github.com/Aayu8982) ## Support For support and queries, email aayu8982@gmail.com