Skip to Content
Engineering11 Documentation 🔥

REST Datastores API

NestJS module for SQL database connection management and repository registration.

What It Does

The REST Datastores API provides a NestJS module that simplifies SQL database connection management and repository registration. It implements a “set it once and forget it” model for database configuration with automatic connection pooling and lifecycle management.

Key Capabilities

  • Centralized Connection Management: Single registration at root module
  • Repository Registration: Dynamic repository registration via DI
  • Connection Pooling: Automatic pool management via SqlExecutor
  • Lifecycle Management: Automatic cleanup on module destruction
  • Async Configuration: Support for both sync and async config loading
  • Global Availability: Repositories accessible throughout application

Main Component

DatastoresModule

@Module({ imports: [ DatastoresModule.forRoot({ database: 'public', host: process.env.DB_HOST, port: process.env.DB_PORT, password: process.env.DB_PASSWORD, user: process.env.DB_USER }) ] })

Repository Registration

@Module({ imports: [ DatastoresModule.registerRepositories(UserRepository, ProductRepository) ] })

Configuration Patterns

Synchronous

DatastoresModule.forRoot(connectionOptions)

Asynchronous

DatastoresModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: (config: ConfigService) => config.getDatabaseConfig() })

Common Use Cases

  • SQL database connection management
  • Repository pattern implementation
  • NestJS microservices with SQL backends
  • Multi-tenant database connections
  • Connection pool management

What Customers Don’t Have to Build

  • Database connection configuration
  • Repository dependency injection
  • Connection pool management
  • Module lifecycle handling
  • SqlExecutor setup
  • Global provider registration
Last updated on