# @maestro-framework/maestro

> Maestro is a framework for quickly bootstrapping serverless orchestration workflows with AWS Step Functions

Latest version **1.1.2** (published 2020-08-31) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install @maestro-framework/maestro
pnpm add @maestro-framework/maestro
yarn add @maestro-framework/maestro
bun add @maestro-framework/maestro
```

Provides the command `maestro`.

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 1.1.2 |
| Published | 2020-08-31 |
| First published | 2020-08-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=10 |
| Dependencies | 2 |
| Unpacked size | 51.3 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | yes |
| GitHub stars | 18 |
| Author | maestro |
| Maintainers | johnisom, t-monius, zklamm |
| Keywords | lambda, aws, amazon web services, serverless, faas, maestro, orchestration, orchestrator, framework, maestro-framework |

## Links

- npm: https://www.npmjs.com/package/@maestro-framework/maestro
- Repository: https://github.com/maestro-framework/maestro
- Homepage: https://github.com/maestro-framework/maestro#readme
- Issues: https://github.com/maestro-framework/maestro/issues
- npm.io page: https://npm.io/package/@maestro-framework/maestro

## Dependencies (2)

- [aws-sdk](https://npm.io/package/aws-sdk.md) ^2.724.0
- [minimist](https://npm.io/package/minimist.md) ^1.2.5

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 1.1.2 (latest) — 2020-08-31
- 1.0.2 — 2020-08-21
- 1.0.1 — 2020-08-21
- 1.0.0 — 2020-08-21

## README

# ![LS-BrandDev-Maestro_logo-full-onlight](https://user-images.githubusercontent.com/42946880/91614803-739b7200-e93f-11ea-85aa-32f5fbb5f150.png)

Maestro is a framework to manage and deploy workflows. There is a deployer (`deploy.js`) which is an automatic deployer script
that will deploy AWS IAM Roles, AWS Lambdas, and AWS Step Functions to create a functioning state machine.

In the `bin` directory lie `deploy.js` and `teardown.js`. When `deploy.js` is invoked in a directory that has a `lambdas` subdirectory and `definition.asl.json` state machine definition file, all of the lambdas in that specified directory are deployed, and the `definition.asl.json` file is deployed as well, filling in values as necessary.

In the `templates` directory lie an assortment of template Maestro projects to help you bootstrap your project. When you want to create a project that is based off of a template, first create a directory anywhere in your filesystem with the name of your project (eg `mkdir /path/to/project-name/`). Next, `cd` into that directory. Then `cp` the template files over (eg `cp -r /path/to/maestro/templates/example-workflow/* .`). After that, you can deploy with `/path/to/maestro/bin/deploy.js` and teardown with `/path/to/maestro/bin/teardown.js`.

## Usage

To use, you must have the [AWS CLI][aws-cli] installed and set up.

1. Clone this repository (`git clone https://github.com/maestro-framework/maestro.git /path/to/maestro`)
2. Install the npm package globally (`sudo npm -g install /path/to/maestro`)
3. Run `maestro get-templates` to get the default project templates provided by Maestro
4. Create a new project with `maestro new`
5. Run `maestro config` and follow the prompts
6. Run `maestro deploy` in the top level directory of your Maestro project to deploy it to AWS
7. To tear down state machine and associated resources, run `maestro teardown`
   - This prompts you for confirmation. If you prefer to run it without a confirmation, provide a `-f` or `--force` flag
   - This doesn't automatically tear down the roles that were created upon deployment. To do that, provide a `--roles` flag with a comma-separated-list of role names to tear down (for example, `--roles=roleName1,roleName2` OR `--roles roleName1,roleName2`)
8. Read the man pages and get up to speed! (`man maestro`)

## Dependencies

- Node.js 12.x or greater
- npm packages (installed during `npm install`):
  - `minimist`
  - `aws-sdk`
- `zip` command line utility
- [AWS CLI][aws-cli]
- `git` version control system

## Development Assumptions

- The name of the workflow is the project directory
  - The project directory has to have a `lambdas` subdirectory and a `definition.asl.json` state machine definition template file
- We'll never deploy or teardown from any location that isn't the project root directory (can't deploy from the lambdas directory or any nested)

[aws-cli]: https://aws.amazon.com/cli/

---
_Source: https://npm.io/package/@maestro-framework/maestro · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
