{"id":21518559,"url":"https://github.com/simplify-framework/cli","last_synced_at":"2025-04-09T22:04:58.258Z","repository":{"id":57361503,"uuid":"289473759","full_name":"simplify-framework/cli","owner":"simplify-framework","description":"A minimalist command-line solution for managing AWS Lambda and CloudFormation templates with ultimate control through infrastructure as Javascript code.","archived":false,"fork":false,"pushed_at":"2023-01-14T13:10:46.000Z","size":21397,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T22:04:49.838Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simplify-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2020-08-22T11:18:26.000Z","updated_at":"2023-06-14T19:52:35.000Z","dependencies_parsed_at":"2023-02-09T19:30:54.388Z","dependency_job_id":null,"html_url":"https://github.com/simplify-framework/cli","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify-framework%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify-framework%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify-framework%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplify-framework%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simplify-framework","download_url":"https://codeload.github.com/simplify-framework/cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119296,"owners_count":21050755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T00:53:00.931Z","updated_at":"2025-04-09T22:04:58.238Z","avatar_url":"https://github.com/simplify-framework.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simplify Framework - Easy Deployment\n\n![NPM Downloads](https://img.shields.io/npm/dw/simplify-cli)\n![Package Version](https://img.shields.io/github/package-json/v/simplify-framework/cli?color=green)\n\n*A minimalist and optimistic serverless framwork for managing AWS Lambda functions.*\n\n`npm install -g simplify-cli`\n\n```bash\n$ simplify-cli init\n\n - Choose a Project name? (starwars) \n - Choose an S3 Bucket name? (starwars-0920) \n - Choose an Environment? (demo) \n\n$ simplify-cli register\n$ simplify-cli login\n$ simplify-cli create --help\n\n╓───────────────────────────────────────────────────────────────╖\n║                 Simplify CLI - Version 0.1.39                 ║\n╙───────────────────────────────────────────────────────────────╜\n\nCreate a deployment template: simplify-cli create [--template=]Detector | ShowLog\n 1. Detector - A Python Detector function based on Python 3.7 runtime.\n 2. ShowLog - A CloudWatch Log reader function based on NodeJS 12.x.\n\nCreate associated CF stack: simplify-cli create [--template=]CloudFront | CognitoUser...\n\n 1. CloudFront - A template to create a CDN using CloudFront for S3 Website and HTTP APIs origin.\n 2. CognitoUser - A template to create a Cognito UserPool, Cognito Indentity and Pinpoint analytics.\n 3. EventScheduler - A CloudWatch scheduler event for triggering a lambda function with schedule expresion.\n 4. HttpRestapi - A template to create a REST API Gateway that work with Lambda functions.\n 5. LambdaEdge - A template to create a CDN using CloudFront that works with LambdaEdge function.\n 6. Randomness - A Lambda randomness source to use in common case for other Lambdas.\n 7. WebsiteS3 - An HTML website hosting by Amazon S3 Bucket that support publishing extension script.\n\n * Or fetch from YAML: simplify-cli create [--template=]https://github.com/awslabs/...template.yml\n ```\n  \n### Deploy your function\n\n    1. simplify-cli deploy --function LambdaTest --source src             # resilience deploying your function code \n    2. simplify-cli deploy --function LambdaTest --update --publish       # publish the latest code to a lambda version\n    3. simplify-cli deploy --function LambdaTest --layer --source layer   # make the layer/nodejs folder into lambda layer\n\n### Destroy your function\n\n    1. simplify-cli destroy --function LambdaTest                         # destroy your function only, keep layers\n    2. simplify-cli destroy --function LambdaTest --layer                 # destroy your function with all layers\n\n### Deploy a CloudFormation stack\n\n    1. simplify-cli deploy --stack HttpRestapi     # create a stack from \"${location}/${stack-name}.yaml\"\n    3. simplify-cli deploy --stack HttpRestapi --location templates\n\n### Destroy a CloudFormation stack\n\n    1. simplify-cli destroy --stack HttpRestapi    # delete a selected stack name\n\n### Deployment Extension for CloudFromation\n\n- Each stack has an ability to add an extension code for stack creation/destruction.\n- The extension Javascript file will be located at `${location}/${stack-name}.js`\n\n```Javascript\n'use strict';\nconst path = require('path')\nconst fs = require('fs')\nconst opName = `Extension`\nmodule.exports = {\n    /** Called before stack creation, return StackParameters = { Environmemt, ...} */\n    preCreation: function(adaptor, stackName, mappedParameters, stackYAML, stackInputs) {\n        return Promise.resolve(stackParameters)\n    },\n    /** Called after the `${location}/${stack-name}.yaml` was deployed */\n    postCreation: function(adaptor, stackName, stackData) {\n        const { simplify, provider, config } = adaptor\n        return Promise.resolve(stackData)\n    },\n    /** Called before stack destruction, return { stackName } */\n    preCleanup: function(adaptor, stackName, stackList) {\n        const { simplify, provider, config } = adaptor\n        return Promise.resolve(stackName)\n    },\n    /** Called after the `${location}/${stack-name}.yaml` was destroyed  */\n    postCleanup: function(adaptor, stackName, stackList, stackData) {\n        const { simplify, provider, config } = adaptor\n        return Promise.resolve(stackData)\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplify-framework%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimplify-framework%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplify-framework%2Fcli/lists"}