This project helps developers create common AWS services that are useful in creating fullstack applications. Backend services are deployed as separate CDK stacks and export the necessary outputs needed for your frontend projects.
🗒️ This is not an NPM package or construct, but rather a starting template for your own CDK applications and is meant to be extended and modified
The lib/authStack.ts file creates the following services
- Cognito Userpool
- Cognito Userpool Group (if specified)
- Cognito Identity Pool
🗒️ The identity pool helps in providing IAM permission access to both authenticated and unauthenticated users as well as AWS services such as Amazon S3.
The lib/fileStorage.ts file creates an Amazon S3 bucket and comes configured with managed polcies that are in line with what the Amplify Storage library uses as acceptable defaults.
Thelib/apiStack.ts file creates an AppSync API that is based on a Todo application.
Note that this stack comes preconfigured with the following:
- A sample graphql schema
- Userpool authorization
- API Key authorization
- IAM authorization
- DynamoDB as a datasource
In addition, this package makes use of the @aws-cdk/aws-appsync-alpha npm package for easiliy creating the request and response mapping templates.
The lib/databaseStack.ts file creates a single DynamoDB table that is used as a datasource for the AppSync API above.
For a full walkthrough on how one might integrate the output from these stacks into a frontend application that makes use of AWS Amplify libraries, refer to this fullstack guide.
npm run buildcompile typescript to jsnpm run watchwatch for changes and compilecdk deploydeploy this stack to your default AWS account/regioncdk diffcompare deployed stack with current statecdk synthemits the synthesized CloudFormation template