Third Party Integration Documentation
Overview
Complete NestJS Boilerplate integrates with various third-party services and providers to handle authentication, storage, email, caching, monitoring, and database operations. All integrations are configured through environment variables.
Related Documents
- Configuration Documentation
- Environment Documentation
- Authentication Documentation
- File Upload Documentation
- Queue Documentation
- Cache Documentation
- Database Documentation
Table of Contents
AWS Services
S3 Storage
AWS S3 is used for file storage with support for both public and private buckets.
Packages:
@aws-sdk/client-s3@aws-sdk/s3-request-presigner
Environment Variables:
AWS_S3_PUBLIC_CREDENTIAL_KEY=your_access_key
AWS_S3_PUBLIC_CREDENTIAL_SECRET=your_secret_key
AWS_S3_REGION=ap-southeast-3
AWS_S3_PUBLIC_BUCKET=your_public_bucket
AWS_S3_PUBLIC_CDN=https://your-cdn.cloudfront.net
AWS_S3_PRIVATE_BUCKET=your_private_bucket
AWS_S3_PRIVATE_CDN=https://your-private-cdn.cloudfront.netUse Cases:
- Public file uploads (user avatars, public documents)
- Private file storage (sensitive documents)
- Presigned URL generation for secure access
For detailed implementation, see File Upload.
SES Email
AWS SES handles transactional email delivery.
Packages:
@aws-sdk/client-ses
Environment Variables:
AWS_SES_CREDENTIAL_KEY=your_access_key
AWS_SES_CREDENTIAL_SECRET=your_secret_key
AWS_SES_REGION=ap-southeast-3Use Cases:
- Welcome emails
- Password reset emails
- Email verification
- Notification emails
Email processing is handled through the queue system. See Queue for details.
Sentry
Sentry provides error tracking and performance monitoring.
Packages:
@sentry/nestjs@sentry/profiling-node
Environment Variables:
SENTRY_DSN=https://your-dsn@sentry.io/project-idFeatures:
- Automatic error tracking
- Performance monitoring
- Queue job failure tracking (integrated in
QueueProcessorBase) - Request context capture
Leave SENTRY_DSN empty to disable Sentry in development.
Redis
Redis serves as cache storage and queue backend.
Packages:
@keyv/rediskeyvbullmqcache-manager
Environment Variables:
CACHE_REDIS_URL=redis://localhost:6379/0
QUEUE_REDIS_URL=redis://localhost:6379/1Use Cases:
- Application caching (DB 0)
- Background job queues (DB 1)
- Session storage
- Rate limiting data
For cache implementation, see Cache. For queue details, see Queue.
MongoDB
MongoDB with Prisma as the primary database.
Packages:
@prisma/clientprisma
Environment Variables:
DATABASE_URL=mongodb://localhost:27017/CompleteNestJsBoilerplate?retryWrites=true&w=majority&replicaSet=rs0
DATABASE_DEBUG=trueFeatures:
- Replica set support
- Transaction support
- Type-safe queries via Prisma
For database setup and usage, see Database.
Social Authentication
Google OAuth
Google OAuth for social login integration.
Packages:
google-auth-library
Environment Variables:
AUTH_SOCIAL_GOOGLE_CLIENT_ID=your_client_id.apps.googleusercontent.com
AUTH_SOCIAL_GOOGLE_CLIENT_SECRET=your_client_secretFor authentication flow details, see Authentication.
Apple Sign In
Apple Sign In for iOS authentication.
Packages:
verify-apple-id-token
Environment Variables:
AUTH_SOCIAL_APPLE_CLIENT_ID=your_service_id
AUTH_SOCIAL_APPLE_SIGN_IN_CLIENT_ID=your_app_bundle_idFor authentication flow details, see Authentication.