npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@saws/secrets

v1.0.6

Published

<div align='center'>

Downloads

17

Readme

Secrets

Service and library managing Secrets in AWS SSM Parameter store.

Table of Contents

Installation

From the command line run:

npm install @saws/secrets

Then add the SecretsService to your saws.js file.

Development

When running your SAWS application in development, this service will store and retrieve local secrets out of a .gitignored file located at .saws/.secrets. This file is in the same format as a .env file.

Deployment

When you deploy a SecretsService it will not create any additional AWS resources for you. The way to set secrets in a specific stage would be to use the @saws/cli secrets command.

Services

@saws/secrets includes one service, SecretsService.

SecretsService

You can require the SecretsService and use it in your saws.js file like so:

const { SecretsService } = require('@saws/secrets/secrets-service')

// will almost exclusively be used as a dependency to other services
const secrets = new SecretsService({
  name: 'my-secrets',
})

The SecretsService constructor accepts the following options:

name: string

The name of your service. This should be unique across all of your services.

dependencies: ServiceDefinition[]

An array of all of the other services this service depends on. This will ensure that permissions, environment variables, and execution order are all set up.

When used as a dependency

When a SecretsService is used as a dependency, it will not attach any environment variables to the dependant service.

Libraries

@saws/secrets includes a SecretsManager class that can be used to get and set secrets in the current stage.

SecretsManager

The SecretsManager class can be used as follows:

import { SecretsManager } from '@saws/secrets/secrets-manager'

const manager = new SecretsManager()

await manager.get('secret-name')

await manager.set('secret-name', 'value')

get(name: string): Promise<string>

This function will get a secret value from either your .secrets file when running locally, or from SSM Parameter Store when running in a production environment.

set(name: string, value: string): Promise<void>

This function will set a secret value either in your .secrets file when running locally, or to SSM Parameter Store when running in a production environment. The secret will be set as an encrypted string in Parameter Store.

Commands

When you have a SecretsService in your saw.js config file, it will add the following commands to the saws cli command:

secrets

The saws secrets command is used for managing secrets within the application. It requires a secret name and supports various operations such as setting and getting secrets.

Usage

saws secrets [options] <name>

Arguments : The name of the secret. This is a required argument.

Options --stage : Specifies the stage environment (e.g., local, dev, prod). Default is local. --set : Sets the secret to the specified value. --get: Retrieves the current value of the secret.

Examples

Set a secret: This command sets the value of mySecret in the prod stage to mySecretValue.

saws secrets --stage prod --set "mySecretValue" mySecret

Get a secret: This command retrieves the value of mySecret in the dev stage.

saws secrets --stage dev --get mySecret