https://github.com/tux86/nestjs-serverless-boilerplate
Serverless Multi-tenant NestJS backend "Boilerplate" + Fastify + Serverless Framework 3 + Graphql + Modules for AWS Serverless Services (SES,SQS,SecretsManager,Aurora RDS)
https://github.com/tux86/nestjs-serverless-boilerplate
aws-lambda boilerplate cognito graphql nestjs s3 secrets-manager serverless serverless-framework ses sqs typeorm typescript
Last synced: 21 days ago
JSON representation
Serverless Multi-tenant NestJS backend "Boilerplate" + Fastify + Serverless Framework 3 + Graphql + Modules for AWS Serverless Services (SES,SQS,SecretsManager,Aurora RDS)
- Host: GitHub
- URL: https://github.com/tux86/nestjs-serverless-boilerplate
- Owner: tux86
- Created: 2022-04-13T20:41:56.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-08-01T09:38:33.000Z (almost 4 years ago)
- Last Synced: 2023-03-09T01:26:36.445Z (over 3 years ago)
- Topics: aws-lambda, boilerplate, cognito, graphql, nestjs, s3, secrets-manager, serverless, serverless-framework, ses, sqs, typeorm, typescript
- Language: TypeScript
- Homepage:
- Size: 585 KB
- Stars: 24
- Watchers: 2
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Serverless Multi-tenant NestJS backend "Boilerplate"
Serverless Multi-tenant monolithic backend app made with NestJS 8 + Serverless Framework
## Features:
### NestJS:
* NestJS 8 + Fastify + TypeORM
* NestJS/Graphql - multiple endpoints (public, management, internal)
* Pagination, sort, search and filtering for Rest & Graphql APIs
* Includes Buniness logic Exceptions with namespaced codes
* Using Exception filters and logging
* custom validators
### IAC Serverless Framework (AWS):
* Serverless Framework 3
* serverless-offline (full working local envrionnement with aws services mocking)
* single Lambda function aka. mono-lambda
* use of Lambda function URLs instead of Lambda + Api Gateway
* Custom domain endpoints (Route53 → Cloudfront → Lambda)
* arm64 architecture for lambda
* using 100% aws-sdk (v3)
* AWS Cognito JWT token validation with AuthGuard
### Core modules:
#### AWS Modules:
* Cognito module
* SQS module: SQS producer/consumer (use of NestJS Standalone application for consumer)
* SES module (inspired by **@ssut/nestjs-sqs**) https://www.npmjs.com/package/@ssut/nestjs-sqs
* S3 module
* SecretsManager module: used by database module to load db credentials
### Other topics
* Semantic Versioning: https://github.com/0xb4lamx/nestjs-boilerplate-microservice/blob/master/docs/guidelines.md
## Installation
```bash
$ yarn install
```
## Running the app
```bash
# development
$ yarn start
# watch mode
$ yarn start:{app-name}:dev
```
## Test
```bash
# unit tests
$ yarn test
# e2e tests
$ yarn test:e2e
# test coverage
$ yarn test:cov
```