🌥️
Patient Cloud
  • README
  • Auth
    • Google Identity
    • Identity Providers
    • Nest Auth Service
  • Microservices
    • NestJS Overview
  • Security
    • API Security
    • Trails
  • Client App Security
  • Development
    • Sentry logging
  • Build
    • Local Build
    • Using Cloud Build
  • Social login
    • Social login
  • NHS
    • NHS Login
  • GraphQL
    • Playground
  • Testing
    • Unit Tests
    • Integration Tests
    • End to End tests
Powered by GitBook
On this page
  • NestJS libraries used
  • TypeORM
  • Passport.js
  • Swagger
  • NestJSX Crud
  • Nodemailer

Was this helpful?

  1. Microservices

NestJS Overview

NestJS libraries used

TypeORM

We use TypeORM as an ORM. UUID used in every table, it takes more space then integer AUTOINCREMENT field, but it allows us better scalabilty and we can build domain entities with primary key which we can generate ourselves. There is no database preference in the code any SQL database can be used.

Configuration

TypeORM configuration initialized in src/app.module.ts file:

Variable

Description

type

mysql or postgres

url

Connection URL string including name, password and address

entities

Directory where ORM should look for entity files

synchronize

ORM will keep database tables in sync with entities if set to true

logging

Log all queries and commands to console

Passport.js

Passport.js used for OAuth and OpenID Connect authentications.

Strategies

Name

Description

passport-facebook

Facebook OAuth

passport-google-oauth20

Google OAuth

passport-linkedin-oauth2

LinkedIn OAuth

openid-client

OpenID Connect

Configuration

All configurations are stored in src/auth/strategies files and can be overridden by environment variables.

Swagger

OpenAPI is used for API description and documentation. While the application is running, Swagger is accessible at /api url. OpenAPI JSON schema can be downloaded at /api-json address.

NestJSX Crud

Nodemailer

Email notifications are using Nodemailer library through @nest-modules/mailer wrapper. Handlebars template engine for email templates.

Configuration

Email settings are set in environment variables and initilized in src/app.module.ts file.

Variable

Description

transport

Connection URL

template.dir

Full path to Handlebars templates

PreviousNest Auth ServiceNextAPI Security

Last updated 4 years ago

Was this helpful?

NestJSX Crud is used for simple CRUD operations. It is very powerful library with authentication support. Library configured in corresponding module's controller file. Full documentation available here ().

https://github.com/nestjsx/crud/wiki/Controllers#description