All Projects → dawson-org → Dawson Cli

dawson-org / Dawson Cli

Licence: gpl-3.0
A serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda)

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Dawson Cli

Awesome Aws
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.
Stars: ✭ 9,895 (+1272.4%)
Mutual labels:  aws, serverless, lambda, cloudformation
Aws Toolkit Vscode
AWS Toolkit for Visual Studio Code, an extension for working with AWS services including AWS Lambda.
Stars: ✭ 823 (+14.15%)
Mutual labels:  aws, serverless, lambda, cloudformation
Aws Sam Cli
CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM
Stars: ✭ 5,817 (+706.8%)
Mutual labels:  aws, serverless, lambda
Serverless Rust
⚡ 🦀 a serverless framework plugin for rustlang applications
Stars: ✭ 386 (-46.46%)
Mutual labels:  aws, serverless, lambda
Lambda Packages
Various popular python libraries, pre-compiled to be compatible with AWS Lambda
Stars: ✭ 713 (-1.11%)
Mutual labels:  aws, serverless, lambda
Aws Microservices Deploy Options
This repo contains a simple application that consists of three microservices. Each application is deployed using different Compute options on AWS.
Stars: ✭ 370 (-48.68%)
Mutual labels:  aws, serverless, lambda
Shep
A framework for building JavaScript Applications with AWS API Gateway and Lambda
Stars: ✭ 376 (-47.85%)
Mutual labels:  aws, serverless, lambda
Aws Mobile React Sample
A React Starter App that displays how web developers can integrate their front end with AWS on the backend. The App interacts with AWS Cognito, API Gateway, Lambda and DynamoDB on the backend.
Stars: ✭ 650 (-9.85%)
Mutual labels:  aws, serverless, lambda
Terraform Aws Github Runner
Terraform module for scalable GitHub action runners on AWS
Stars: ✭ 326 (-54.79%)
Mutual labels:  aws, serverless, lambda
Aws Serverless Ecommerce Platform
Serverless Ecommerce Platform is a sample implementation of a serverless backend for an e-commerce website. This sample is not meant to be used as an e-commerce platform as-is, but as an inspiration on how to build event-driven serverless microservices on AWS.
Stars: ✭ 469 (-34.95%)
Mutual labels:  aws, serverless, lambda
Honeylambda
honeyλ - a simple, serverless application designed to create and monitor fake HTTP endpoints (i.e. URL honeytokens) automatically, on top of AWS Lambda and Amazon API Gateway
Stars: ✭ 454 (-37.03%)
Mutual labels:  aws, serverless, lambda
Mangum
AWS Lambda & API Gateway support for ASGI
Stars: ✭ 475 (-34.12%)
Mutual labels:  aws, serverless, lambda
Aws Serverless Workshop Innovator Island
Welcome to the Innovator Island serverless workshop! This repo contains all the instructions and code you need to complete the workshop. Questions? Contact @jbesw.
Stars: ✭ 363 (-49.65%)
Mutual labels:  aws, serverless, lambda
Nodb
NoDB isn't a database.. but it sort of looks like one.
Stars: ✭ 353 (-51.04%)
Mutual labels:  aws, serverless, lambda
Up Examples
Example apps, apis, and sites for Up.
Stars: ✭ 381 (-47.16%)
Mutual labels:  aws, serverless, lambda
Cloud Custodian
Rules engine for cloud security, cost optimization, and governance, DSL in yaml for policies to query, filter, and take actions on resources
Stars: ✭ 3,926 (+444.52%)
Mutual labels:  aws, serverless, lambda
Bash Lambda Layer
Run Bash scripts in AWS Lambda via Layers
Stars: ✭ 390 (-45.91%)
Mutual labels:  aws, serverless, lambda
Dazn Lambda Powertools
Powertools (logger, HTTP client, AWS clients, middlewares, patterns) for Lambda functions.
Stars: ✭ 501 (-30.51%)
Mutual labels:  aws, serverless, lambda
Auto Tag
Automatically tag AWS resources on creation, for cost assignment
Stars: ✭ 322 (-55.34%)
Mutual labels:  aws, lambda, cloudformation
Aws Demos
A hands on repo with multiple demonstrations on AWS 🎓
Stars: ✭ 324 (-55.06%)
Mutual labels:  aws, serverless, cloudformation

dawson

----

Sorry, this project is not maintained anymore.

----

Build Status Dependency Status Greenkeeper badge Coverage Status codecov

dawson is a serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda).
You can use dawson to build and deploy backend code and infrastructure for single-page apps + API, pure APIs or server-rendered pages.

npm package

// api.js

import pug from 'pug';
const template = pug.compileFile('template.pug');

export async function greet (event) {
    const name = event.params.path.name
    const age = await getUserAge(name);
    return template({ name, age });
}
greet.api = {
    path: 'greet/{name}'
}
$ npm install -g @dawson/dawson-cli
$ export AWS_REGION=... AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...
$ dawson deploy

Documentation

Getting Started Guide, API & CLI Documentation

Examples

Examples & Reference Apps

Articles & Tutorials

  1. dawson & React server-side rendering by @hwclass

About

dawson lets you to deploy your serverless Node.js apps on Amazon Web Services. It requires no boilerplate, no init command and no configuration files. Just write your functions and deploy!

You can write your functions using the latest JavaScript version (babel-preset-latest), including async-await, object-rest-spread etc. Functions can be async and can return Promises. There's also built-in authorization support via API Gateway Custom Authorizers.

Each function has its own IAM Execution Role, so you can define fine-graned IAM Policies.
dawson offers first-class support for Single Page Applications: a CloudFront Distribution will be deployed in front of your app, correctly mapping assets and the API origin, so you don't have to worry about CORS. An AWS WAF WebACL can also be attached to CloudFront.

dawson does not bundle your app with webpack, browserify or rollup, so you'll never have to deal with weird things. Your app's devDependencies are stripped out while deploying, keeping the bundle ZIP small.

dawson uses pure CloudFormation templates, following the infrastructure-as-code principle; it requires no local or remote state files which may go out-of-sync or mistakenly be deleted. You can customize your app's template in every part, e.g.: you can add CloudFormation Resources, modify Properties of Resources created by dawson etc. As a free benefit, you get out-of-the-box support for multiple stages and regions.

Finally, dawson will automatically support HTTPS for custom domains thanks to AWS ACM. Also, if you use Route53 your DNS Zone can be automatically updated.

CLI

Using the dawson command you can deploy the infrastructure, inspect logs (in real time, like tail -f) and spin up a full development server so you can run your all locally in an environment will be almost identical to production's. The development server can also run functions locally in response to real AWS Events (S3 Events, DynamoDB Triggers etc.).

$ dawson deploy # deploy your app
$ dawson log -f functionName --follow # get function logs
$ dawson describe # list CloudFormation outputs
$ dawson dev # start a development server

Architecture

https://raw.githubusercontent.com/dawson-org/dawson-cli/images/architecture.png

(additionally for each region you'll deploy to, dawson uses a support stack with an S3 Bucket to store Lambda ZIP bundles and CloudFormation templates)

Changelog

A changelog is maintained in the Releases page.

Contributing

js-semistandard-style Commitizen friendly

Any contribution is very welcome! You may pick an Issue, fork and start working on that. Should you need any guidance or help please ask :)

Testing

Run npm test.

codecov
We are currently testing and targeting 100% coverage for functions that are involved in the template generation (src/factories/**.js).

Contributors

Thanks goes to these wonderful people (emoji key):


Simone Lusenti

💬 📝 🐛 💻 📖 💡 🚇 🔌 👀 📢 ⚠️ 🔧 ✅

Alex Casalboni

💬 🐛 💻 💡 📢 ⚠️ 🔧

Giacomo Consonni

💻 📖 🔌

Luca Casartelli

💻 📖

Chris Matheson

🐛 📖

Robert Kistner

🐛 💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Support

In case you have an issue, make sure you have updated to the latest version (e.g.: npm i @dawson/[email protected]), then:

  • search / post on StackOverflow using the dawson tag
  • search / open an issue in this repo
  • contact me on Twitter @Lanzone31

Related

License

Copyright (C) 2016  Simone Lusenti

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].