2.0.0 (2026-03-24)
- add enterprise features (4dc76ad)
- v2.0.0 release
All notable changes to this project are documented in this file.
The format follows Keep a Changelog and this project follows Semantic Versioning.
This release overhauls both the node-mongo-ts and node-mongo-js templates. It adds TypeScript-first patterns, structured logging, Redis caching, Docker multi-stage builds, CI/CD, database seeders, and project-level documentation.
- ✅ Path aliases (
@/) viatsconfig-pathsandtsc-alias - ✅ DTOs using
class-validatorandclass-transformer - ✅ Generics, Utility Types, Discriminated Unions, Type Guards
- ✅ Strict type checking across the project
- ✅ Type-safe environment variable validation
- ✅ Structured logging with Pino (JSON in production, pretty-print in dev)
- ✅ Correlation IDs for distributed request tracing
- ✅ Request logging middleware with duration tracking
- ✅ Redis caching layer using
ioredis - ✅ Type-safe cache service with TTL support
- ✅ Graceful fallback when Redis is unavailable
- ✅ Response compression middleware
- ✅
/health/liveness— Kubernetes liveness probe - ✅
/health/readiness— Readiness probe with DB and cache checks - ✅
/health— System metrics (uptime, memory, connection status)
- ✅ Seeder infrastructure with idempotent design
- ✅ User seeder with hashed passwords
- ✅
npm run db:seedcommand
- ✅ Multi-stage Docker builds (~100MB images)
- ✅ Docker Compose with MongoDB, Redis, and Mongo Express
- ✅ GitHub Actions pipeline (lint, typecheck, build, security scan)
- ✅ Husky + lint-staged for pre-commit hooks
- ✅ Commitlint for conventional commits
- ✅ Container health checks
- ✅ Non-root Docker user
- ✅ Swagger/OpenAPI configuration
- ✅ Auto-generated API docs
- ✅ Type-safe schemas and examples
- ✅ Signal handling (SIGTERM, SIGINT)
- ✅ Connection draining
- ✅ Clean database and cache disconnection
- ✅ 30-second timeout safeguard
- ✅
SKILLS.md— Coding standards and patterns - ✅
SEEDERS.md— Database seeding guide - ✅
CONTRIBUTING.md— Development workflow and standards - ✅
ARCHITECTURE.md— System architecture overview - ✅
TYPESCRIPT_GUIDE.md— TypeScript patterns and practices
- ✅ Structured logging with Pino
- ✅ Redis caching using
ioredis - ✅ Response compression middleware
- ✅ Standardized HTTP status codes
- ✅ ES6+ seeder infrastructure
- ✅ User seeder with bcrypt hashing
- ✅
npm run db:seedcommand
- ✅ Multi-stage Docker builds
- ✅ Docker Compose with MongoDB + Redis
- ✅ GitHub Actions CI/CD pipeline
- ✅ Husky + lint-staged
- ✅ Commitlint for conventional commits
- ✅
SKILLS.md— JavaScript/ES6+ coding standards - ✅
SEEDERS.md— Database seeding guide - ✅
CONTRIBUTING.md— Development workflow
compression— Response compressionhttp-status-codes— Standardized HTTP status codesioredis— Redis clientnanoid— Unique ID generationpino,pino-http,pino-pretty— Structured logging@commitlint/cli,@commitlint/config-conventional— Commit message validationhusky— Git hookslint-staged— Pre-commit formattingeslint-plugin-import— Import order linting
class-validator— DTO validationclass-transformer— DTO transformationreflect-metadata— Decorator metadatatsconfig-paths— Path alias resolution (runtime)tsc-alias— Path alias resolution (build time)
- Added
db:seed— Run database seeders - Added
prepare— Set up git hooks - Added
docker:build— Build Docker image - Added
docker:run— Start containers - Added
docker:stop— Stop containers - Added
typecheck— Run TypeScript type checking (TS template)
- Switched to multi-stage builds for smaller images
- Added container health checks
- Added Redis service
- Added Mongo Express for development use
- Containers now run as non-root users
- Added
src/database/seeders/ - Added
src/dtos/(TS template) - Added
src/services/CacheService.ts(TS template) - Added
src/utils/logger.util.ts(TS template) - Added
src/utils/gracefulShutdown.ts(TS template) - Added
.github/workflows/for CI/CD - Added
.husky/for git hooks
- ✅ Environment variable validation at startup
- ✅ Type-safe environment access
- ✅ Non-root Docker users
- ✅ Security headers via Helmet
- ✅ Input validation with DTOs (TS) / Joi (JS)
- ✅ Password hashing in seeders
- ✅ Per-IP/user rate limiting
None. This is a new major version, but all changes are additive. Existing projects can adopt new features incrementally.
For existing users:
- Install new dependencies:
npm install - Set up git hooks:
npm run prepare - Review new docs:
SKILLS.md,SEEDERS.md,CONTRIBUTING.md - Optionally adopt seeders, caching, and structured logging
- Optionally update your Docker setup with the new multi-stage builds
Conventions and patterns in this release are influenced by practices at Vercel, Linear, GitHub, and Google.
1.2.1 (2026-03-05)
- Publish to npm registry instead of GitHub registry (ce40a7c)
1.2.0 (2026-03-05)
- Test npm publish (0c630c6)
1.1.0 (2026-03-05)
- docker: Rename dockerignore during init and add docs guide (8143b41)
- Add Node.js MongoDB template with authentication, testing, Docker, CI/CD, and updated CLI commands (3dd6783)
- User registration and login
- Token generation for authenticated sessions
- OTP verification for phone and email
- Password reset via OTP
- Joi validation for auth and OTP routes
- Jest and Supertest for API testing
tests/directory with base configuration- Example tests (e.g.,
health.test.js)
- Helmet middleware for HTTP header protection
- express-rate-limit for request throttling
- mongo-sanitize and xss-clean to prevent injection attacks
- Configurable CORS middleware
- Dockerfile for containerized deployments
- docker-compose for local API + MongoDB setup
.dockerignorefor optimized builds
/healthendpoint for service status/health/readyendpoint for readiness checks
- Improved output readability
- Removed unnecessary visual elements
- Moved CLI messages to a centralized constants file
- Added
src/constants/Messages.jsfor centralized API response messages - Controllers and services reference constants instead of inline strings
- Internal logs now use a structured format:
[FileUpload] Upload started
[Cloudinary] File uploaded successfully
Renamed Cloudinary environment variables:
| Old Name | New Name |
|---|---|
| CLOUD_NAME | CLOUDINARY_NAME |
| CLOUD_API_KEY | CLOUDINARY_API_KEY |
Added docs in the docs/ directory:
setup.md— Project setup instructionsauthentication.md— Authentication and OTP usageservices.md— Email, AWS S3, and Cloudinary configurationcli-usage.md— CLI command reference
Updated root README.md with clearer setup instructions.
- Fixed inquirer prompt structure issue in the
initcommand - Removed duplicate documentation paths
- Cleaned up formatting in documentation files