Skip to content

Multi-Tenant (Mongoose)

Database-per-tenant multi-tenancy with MongoDB and Mongoose. Each tenant gets its own database on the cluster with connection-scoped models.

Features

  • TenantAdapter with subdomain resolution
  • TenantConnectionManager<Connection> — typed connection cache
  • TenantDbService — injectable wrapper using getCurrentTenant()
  • AuthAdapter with JWT authentication
  • Provider/tenant pattern with fallback to default database
  • Models scoped per connection (conn.model('User', schema))

Key Files

FilePurpose
src/db/schema.tsShared types, provider tenant registry
src/db/tenant-manager.tsTenantConnectionManager<TDb> + Mongoose factory
src/db/tenant-db.service.ts@Service() wrapping tenant DB resolution
src/index.tsBootstrap with TenantAdapter + AuthAdapter
src/modules/projects/Controller demonstrating tenant-scoped queries

Running

bash
cd examples/multi-tenant-mongoose-api
pnpm install
kick dev

Source

See Also