One module wires it all
SdCoreModule.forRoot() composes context, tenancy, audit, permission, cache and HTTP. Opt-in keys add jwt, i18n, uploadedFile, actionHistory, jobScheduler and queue.
Base classes, multi-tenancy, audit, permission, request context, cache, HTTP, JWT/Keycloak, Zod validation, queue, i18n — every domain specific injected via DI strategies. Zero hardcoded column names.
npm install @sdcorejs/nestjsOnly two peer dependencies — @nestjs/common ^11 and @nestjs/core ^11, which every NestJS app already has. Everything else is bundled and installs automatically. Optional feature libs (ioredis, zod@^4, jwks-rsa@^4 + jsonwebtoken, aws-sdk) ship as optionalDependencies. See Getting started for the full matrix.
| Import | What's inside |
|---|---|
@sdcorejs/nestjs | SdCoreModule.forRoot({...}) + ergonomic re-exports |
@sdcorejs/nestjs/core | ORM base classes, request context, multi-tenancy, audit |
@sdcorejs/nestjs/auth | JWT / Keycloak strategies + permission guards & decorators |
@sdcorejs/nestjs/services | context-aware HTTP client + cache (memory / redis) |
@sdcorejs/nestjs/queue | BullMQ QueueModule + SdWorkerHost |
@sdcorejs/nestjs/validation | ZodValidationGuard + query presets (Zod v4) |
@sdcorejs/nestjs/i18n | i18n resolver + exception filter + en/vi core.* catalogs |
@sdcorejs/nestjs/features | UploadedFile, ActionHistory, JobScheduler + drop-in controllers |