The Well-Architected Integration application is an integrated Miro application that provides access to the Well-Architected Tool for obtaining workloads, lenses, and answers. The application exports answers to a Miro board for team collaboration and tracking.
This integration let you import Well-Architected High/Medium risk items (HRIs) to Miro board as Miro cards. Cards then could be used to improve interaction along risk mitigation discussion.
- Organize cards with one of the project management templates from Miroverse (https://miro.com/miroverse/project-management/ ), for instance Kanban board.
- Collaborate in a hybrid workplace (https://miro.com/blog/hybrid-collaboration-field-guide/ ).
- Distribute tasks between team members, prioritize, define project deadlines, mention your team
- members, uncover fun of visual online collaboration.
- Use existing integrations with Jira to create task directly from the board based on HRI card, no more copy-pasting.
Summary of the current stack:
- Frontend - Built with React as the core framework, utilizing Mirotone for UI, and the Miro SDK for Miro dashboard integration.
- API - The RestAPI is managed by Amazon API Gateway with AWS Lambda authorizer.
- Auth - Miro provides JSON Web Tokens (JWT) and, along with API Gateway, fine-grained authorization on the data types that users can access.
- Backend - AWS Lambdas, written in Typescript, integrated with the Well-Architected Tool and Parameter store.
Service | Language | Description |
---|---|---|
onBoarding | Typescript | Provides onboarding functionality during the first run of the application. It includes setup Miro metadata as part of the operation. |
WorkloadList | Typescript | Provides a list of Workloads. Retrieves the list of Well-Architected Workloads objects. |
Workload | Typescript | Provides Workloads. Retrieves the list of Well-Architected Workloads objects. |
AnswersList | Typescript | Provides list of Answers related to Lens. |
- AWS account with access to create
- AWS CLI installed and configured
- NodeJS installed
- NPM installed
- AWS CDK installed
- Docker installed
To begin integrating WATool with the Miro application, follow these steps to deploy infrastructure in your AWS account:
- Configure CLI access to AWS account via profile or environment variables
- Put your Miro application client secret into deployment-config.json file. You can find it in your Miro application settings page.
- Export AWS_REGION environment variable by run
export AWS_REGION='your region here'
(i.e.export AWS_REGION='eu-north-1'
), as Lambda function deployment script relies on that - Bootstrap CDK stack in the target account:
cdk bootstrap aws://<account_id>/<region>
- Docker buildx is required to build Lambda images. It could be either used from Docker Desktop package - no need in steps 4.i and 4.ii in this case; or installed separately (steps below developed and tested on AWS Cloud9):
- Binary installation manual
- To enable multiarch building capability launch
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- For easy deployment just run
npm run deploy
from the project root folder. This will deploy all the necessary stacks in the target account.
-
Familiarize yourself with Miro's Developer Platform: Visit the Miro Developer Platform documentation (https://developers.miro.com/docs) to learn about the available APIs, SDKs, and other resources that can help you build your app.
-
Create Miro Developer Team
-
Go to the Miro Developer Dashboard (https://miro.com/app/dashboard/ ) and click "Create new app". Fill in the necessary information about your app, such as its name, select Developer team. Note: you don't need to check the "Expire user authorization token" checkbox. Click "Create app" to create your app.
-
Please enter the CloudFront URL that you obtained after the deployment process.
-
Add necessary permission.
-
Back to the Miro Developer Dashboard, click "Apps" and start working with just installed app.
This sample code is made available under the MIT-0 license. See the LICENSE file.