{"id":13518206,"url":"https://github.com/dawson-org/dawson-cli","last_synced_at":"2025-03-31T09:31:20.006Z","repository":{"id":57106439,"uuid":"63360008","full_name":"dawson-org/dawson-cli","owner":"dawson-org","description":"A serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda)","archived":true,"fork":false,"pushed_at":"2018-09-12T20:33:39.000Z","size":1228,"stargazers_count":712,"open_issues_count":0,"forks_count":25,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-29T04:08:57.930Z","etag":null,"topics":["aws","cloudformation","lambda","serverless"],"latest_commit_sha":null,"homepage":"https://dawson.sh","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dawson-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-14T18:26:48.000Z","updated_at":"2025-01-28T15:57:09.000Z","dependencies_parsed_at":"2022-08-20T23:50:52.673Z","dependency_job_id":null,"html_url":"https://github.com/dawson-org/dawson-cli","commit_stats":null,"previous_names":["lusentis/dawson"],"tags_count":58,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawson-org%2Fdawson-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawson-org%2Fdawson-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawson-org%2Fdawson-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawson-org%2Fdawson-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dawson-org","download_url":"https://codeload.github.com/dawson-org/dawson-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246446873,"owners_count":20778890,"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":["aws","cloudformation","lambda","serverless"],"created_at":"2024-08-01T05:01:42.054Z","updated_at":"2025-03-31T09:31:19.618Z","avatar_url":"https://github.com/dawson-org.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"![dawson](https://raw.githubusercontent.com/dawson-org/dawson-cli/images/dawson-logo.png)\n\n\n# ----\n# Sorry, this project is not maintained anymore.\n# ----\n\n\n\n\n\n[![Build Status](https://travis-ci.org/dawson-org/dawson-cli.svg?branch=master)](https://travis-ci.org/dawson-org/dawson-cli)\n[![Dependency Status](https://gemnasium.com/badges/github.com/dawson-org/dawson-cli.svg)](https://gemnasium.com/github.com/dawson-org/dawson-cli) \n[![Greenkeeper badge](https://badges.greenkeeper.io/dawson-org/dawson-cli.svg)](https://greenkeeper.io/) \n[![Coverage Status](https://coveralls.io/repos/github/dawson-org/dawson-cli/badge.svg)](https://coveralls.io/github/dawson-org/dawson-cli) \n[![codecov](https://codecov.io/gh/dawson-org/dawson-cli/branch/master/graph/badge.svg)](https://codecov.io/gh/dawson-org/dawson-cli)\n\n\ndawson is a [serverless](https://auth0.com/blog/what-is-serverless/) web framework for Node.js on AWS ([CloudFormation](https://aws.amazon.com/cloudformation/), [CloudFront](https://aws.amazon.com/cloudfront/), [API Gateway](https://aws.amazon.com/apigateway/), [Lambda](https://aws.amazon.com/lambda/)).  \nYou can use `dawson` to build and deploy backend code and infrastructure for single-page apps + API, pure APIs or server-rendered pages.\n\n[![npm package](https://nodei.co/npm/@dawson/dawson-cli.png?compact=true)](https://npm.im/@dawson/dawson-cli)\n\n```js\n// api.js\n\nimport pug from 'pug';\nconst template = pug.compileFile('template.pug');\n\nexport async function greet (event) {\n    const name = event.params.path.name\n    const age = await getUserAge(name);\n    return template({ name, age });\n}\ngreet.api = {\n    path: 'greet/{name}'\n}\n```\n```bash\n$ npm install -g @dawson/dawson-cli\n$ export AWS_REGION=... AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...\n$ dawson deploy\n```\n\n## Documentation\n[Getting Started Guide, API \u0026 CLI Documentation](https://github.com/dawson-org/dawson-cli/blob/master/docs/README.md)\n\n## Examples\n[Examples \u0026 Reference Apps](https://github.com/dawson-org/dawson-examples)\n\n## Articles \u0026 Tutorials\n1. [dawson \u0026 React server-side rendering](https://medium.com/@hwclass/aws-rendered-react-chocolate-chips-with-dawson-part-1-a-simple-service-for-serving-components-2b47a87bebab) by [@hwclass](https://twitter.com/hwclass)\n\n## About\ndawson lets you to deploy your serverless Node.js apps on [Amazon Web Services](https://aws.amazon.com). It requires **no boilerplate**, no `init` command and no configuration files. Just write your functions and deploy!\n\nYou can write your functions using the latest JavaScript version ([`babel-preset-latest`](https://babeljs.io/docs/plugins/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](https://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html).\n\nEach function has its **own IAM Execution Role**, so you can define [fine-graned IAM Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).  \ndawson 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](https://aws.amazon.com/waf/) WebACL can also be attached to CloudFront.\n\ndawson **does not bundle** your app with webpack, browserify or rollup, so you'll never have to deal [with](https://github.com/aws/aws-sdk-js/issues/603) [weird](https://github.com/substack/brfs) [things](https://stackoverflow.com/questions/32253362/how-do-i-build-a-single-js-file-for-aws-lambda-nodejs-runtime). Your app's `devDependencies` are stripped out while deploying, keeping the bundle ZIP small.\n\ndawson uses **pure CloudFormation templates**, following the [infrastructure-as-code](https://en.wikipedia.org/wiki/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**.\n\nFinally, dawson will automatically **support HTTPS** for custom domains thanks to [AWS ACM](https://aws.amazon.com/acm/). Also, if you use [Route53](https://aws.amazon.com/route53/) your **DNS Zone** can be automatically updated.\n\n#### CLI\nUsing 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.).\n\n```bash\n$ dawson deploy # deploy your app\n$ dawson log -f functionName --follow # get function logs\n$ dawson describe # list CloudFormation outputs\n$ dawson dev # start a development server\n```\n\n## Architecture\n\n![https://raw.githubusercontent.com/dawson-org/dawson-cli/images/architecture.png](https://raw.githubusercontent.com/dawson-org/dawson-cli/images/architecture.png)\n\n*(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)*\n\n## Changelog\nA changelog is maintained in the [Releases page](https://github.com/dawson-org/dawson-cli/releases).\n\n## Contributing\n[![js-semistandard-style](https://img.shields.io/badge/code%20style-semistandard-brightgreen.svg?style=plastic)](https://github.com/Flet/semistandard) \n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)  \n\nAny contribution is very welcome! You may pick an Issue, fork and start working on that. Should you need any guidance or help please ask :)  \n\n### Testing\n\nRun `npm test`.\n\n[![codecov](https://codecov.io/gh/dawson-org/dawson-cli/branch/master/graph/badge.svg)](https://codecov.io/gh/dawson-org/dawson-cli)  \nWe are currently testing and targeting 100% coverage for functions that are involved in the template generation (`src/factories/**.js`).  \n\n\n### Contributors\n\nThanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n| [\u003cimg src=\"https://avatars0.githubusercontent.com/u/950086?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003eSimone Lusenti\u003c/sub\u003e](http://www.plasticpanda.com)\u003cbr /\u003e💬 📝 [🐛](https://github.com/lusentis/dawson/issues?q=author%3Alusentis) [💻](https://github.com/lusentis/dawson/commits?author=lusentis) [📖](https://github.com/lusentis/dawson/commits?author=lusentis) 💡 🚇 🔌 👀 📢 [⚠️](https://github.com/lusentis/dawson/commits?author=lusentis) 🔧 ✅ | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/2457588?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003eAlex Casalboni\u003c/sub\u003e](https://blog.alexcasalboni.com/)\u003cbr /\u003e💬 [🐛](https://github.com/lusentis/dawson/issues?q=author%3Aalexcasalboni) [💻](https://github.com/lusentis/dawson/commits?author=alexcasalboni) 💡 📢 [⚠️](https://github.com/lusentis/dawson/commits?author=alexcasalboni) 🔧 | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/4239892?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003eGiacomo Consonni\u003c/sub\u003e](https://github.com/Giaco9)\u003cbr /\u003e[💻](https://github.com/lusentis/dawson/commits?author=Giaco9) [📖](https://github.com/lusentis/dawson/commits?author=Giaco9) 🔌 | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/2690781?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003eLuca Casartelli\u003c/sub\u003e](https://github.com/lcasartelli)\u003cbr /\u003e[💻](https://github.com/lusentis/dawson/commits?author=lcasartelli) [📖](https://github.com/lusentis/dawson/commits?author=lcasartelli) | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/420915?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003eChris Matheson\u003c/sub\u003e](http://chrismatheson.github.io)\u003cbr /\u003e[🐛](https://github.com/lusentis/dawson/issues?q=author%3Achrismatheson) [📖](https://github.com/lusentis/dawson/commits?author=chrismatheson) | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/21061117?v=3\" width=\"100px;\"/\u003e\u003cbr /\u003e\u003csub\u003eRobert Kistner\u003c/sub\u003e](https://github.com/rakistner)\u003cbr /\u003e[🐛](https://github.com/lusentis/dawson/issues?q=author%3Arakistner) [💻](https://github.com/lusentis/dawson/commits?author=rakistner) |\n| :---: | :---: | :---: | :---: | :---: | :---: |\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!\n\n\u003c!-- Contributors START\nSimone_Lusenti lusentis https://twitter.com/Lanzone31 code infra doc tests example\nAlex_Casalboni alexcasalboni https://twitter.com/alex_casalboni code answers\nGiacomo_Consonni giaco9 https://twitter.com/GiacomoConsonni code\nLuca_Casartelli lcasartelli https://twitter.com/CasartelliLuca code doc\nChris_Matheson chrismatheson https://twitter.com/chrismatheson doc\nContributors END --\u003e\n\n## Support\nIn case you have an issue, make sure you have updated to the latest version (e.g.: `npm i @dawson/dawson-cli@latest`), then:\n\n* search / post on StackOverflow using the *dawson* tag\n* search / open an issue in this repo\n* contact me on Twitter [@Lanzone31](https://twitter.com/Lanzone31)\n\n\n## Related\n* https://serverless.com/\n* https://github.com/apex/apex\n* https://claudiajs.com/\n* https://www.terraform.io/\n* https://github.com/awslabs/chalice\n* https://github.com/Miserlou/Zappa\n* https://github.com/jorgebastida/gordon\n\n\n## License\n\n    Copyright (C) 2016  Simone Lusenti\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawson-org%2Fdawson-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdawson-org%2Fdawson-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawson-org%2Fdawson-cli/lists"}