1.1.0 • Published 2 years ago

aws-secret-manager-client v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

AWS Secret Manager client for Node.js

A package contains Asynchronous and Synchronous functions to perform oprations on AWS Secret Manager.

NPM

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

  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 which internally transform async function to sync.

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)
ParameterTypeDescription
SecretIdstringRequired. 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)
ParameterTypeDescription
NamestringRequired. The name of the new secret.
ClientRequestTokenstringOptional. SecretString or SecretBinary.
DescriptionstringRequired. The description of the secret.
KmsKeyIdstringOptional 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)
ParameterTypeDescription
SecretIdstringRequired. 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)
ParameterTypeDescription
SecretIdstringRequired. Your Secret Name
SecretStringstringRequired. "{JSON STRING WITH CREDENTIALS}"

More Details :- https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SecretsManager.html#updateSecret-property

Author

Support

For support and queries, email aayu8982@gmail.com