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

cloud-factory

v0.4.88

Published

A CLI Utility to Manage Software-Defined State

Downloads

9

Readme

cloud-factory - Construct Utilities

A CLI Utility to Manage Software-Defined State

cloud-factory is a commandline application that provides ci-cd capabilities, code extensions, and overall utilities for cloud-related management and development.

In order to begin, open a node.js capable console and then run the following command:

  • npx --yes cloud-factory@latest --help

Schemas

  • https://raw.githubusercontent.com/awslabs/goformation/master/schema/sam.schema.json
  • https://raw.githubusercontent.com/awslabs/goformation/master/schema/cloudformation.schema.json
  • https://raw.githubusercontent.com/awslabs/goformation/master/schema/cdk.schema.json

Usage

There exists a few different ways to run cloud-factory, depending on the context.

Development Usage

While locally developing, the application can be started via the start command located in package.json:

# Start
npm run start

# Help
npm run start -- --help

# Environment Sub-Command Example
npm run start -- environment

Note: a -- is required between the run-script command, and CLI input. This is due to limitations around npm, and parsing input.

NPX Global Usage

npx runs against the most recently-published NPM package.

# Start
npx --yes cloud-factory@latest

# Help
npx --yes cloud-factory@latest ? [--] --help

# Environment Sub-Command Example
npx --yes cloud-factory@latest ? [--] environment

Note: the --yes flag is only required to bypass the install prompt. Once installed, the --yes flag can be optionally included without prompt.

NPM System Usage

cloud-factory can optionally be installed globally to any npm-capable system.

First, run npm install --global cloud-factory. Then, cloud-factory can be used similar to any other installed executable:

# Installation
npm install --global cloud-factory@latest
# Start
cloud-factory

# Help
cloud-factory --help

# Environment Sub-Command Example
cloud-factory environment

Example(s) - A Lambda Deployment

The following example deploys a single Lambda function, but includes, implicitly, the following resources:

  • Lambda Function
  • A Lambda Layer
  • API Gateway
  • X-Ray Enablement
  • Log-Groups
  • SSM Parameter(s)

Note, the only requirement would be a Lambda Function, but for the sake of demonstration, the example includes a Lambda Layer, too.

All other resources are defined dynamically by cloud-factory.

  1. Define and create a new directory
    • mkdir -p example
    • cd example
  2. Clone source(s)
    1. Lambda Function
      • git clone https://github.com/cloud-hybrid/lambda-function-concept.git ./test-function
    2. Lambda Layer
      • git clone https://github.com/cloud-hybrid/lambda-layer-concept.git ./library/test-layer
  3. Define a factory.json file:
    {
        "name": "Concept",
        "organization": "Cloud-Vault",
        "environment": "Development"
    }
    • i.e.
    cat << "EOF" > factory.json
    {
        "name": "Concept",
        "organization": "Cloud-Vault",
        "environment": "Development"
    }
    EOF
  4. Ensure the current directory takes the following shape:
    example
      ├── factory.json
      ├── test-function
      └── library
          └── test-layer
  5. With the current-working-directory set to example, run:
    npx --yes cloud-factory@latest ci-cd initialize --debug
    • Feel free to omit the --debug flag. It's only included for verbosity and understanding
  6. Verify that a distribution folder was created.
  7. Synthesize the state + source code:
    npx --yes cloud-factory@latest ci-cd synthesize --debug
  8. Deploy the lambda function + layer:
    npx --yes cloud-factory@latest ci-cd deploy --debug
  9. A hyperlink will be provided upon successful completion. With reference to the example, navigating to https://v41dkt0ik0.execute-api.us-east-2.amazonaws.com/development/test-function will then provide a JSON response body containing information about the package, and the lambda function's layer.

Synopsis

mkdir -p example && cd "${_}"

git clone https://github.com/cloud-hybrid/lambda-function-concept.git ./test-function

git clone https://github.com/cloud-hybrid/lambda-layer-concept.git ./library/test-layer

cat << "EOF" > factory.json
{
    "name": "Concept",
    "organization": "Cloud-Vault",
    "environment": "Development"
}
EOF

npx --yes cloud-factory@latest --version

npx cloud-factory ci-cd initialize  --debug
npx cloud-factory ci-cd synthesize  --debug
npx cloud-factory ci-cd deploy      --debug

[[ "${?}" == "0" ]] && echo "Successfully Deployed"