Skip to Content
Engineering11 Documentation 🔥

Configuration API

Decorator-driven configuration management from environment variables with automatic validation.

What It Does

The Configuration API provides a NestJS-based system for populating TypeScript class models from environment variables using decorators and metadata reflection. It automates environment variable mapping, validation, and error reporting for configuration management.

Key Capabilities

CapabilityDescription
Decorator-Driven@Config() decorator marks configuration points for automatic injection
Hierarchical NamingClass-level prefixes and property-level customization
Automatic ValidationIntegrates with class-validator for config validation
Type SafetyTypeScript class-based models with compile-time verification
NestJS IntegrationWorks as Injectable service with ConfigService
Error LoggingClear formatting for validation errors
Environment Variable ConversionAutomatic SNAKE_CASE naming convention

Usage Pattern

@Config({base: 'BROWSER'}) export class BrowserConfigModel { @Config() @IsString() @IsUrl() baseURL = 'https://browser.example.com' @Config({envar: 'CUSTOM_NAME'}) @IsNumber() port = 3000 } // Populate and validate const reflector = new ConfigReflector(configService) const [model, errors] = await reflector.reflect(BrowserConfigModel)

Exports

  • @Config() - Decorator for configuration injection
  • ConfigReflector - Service for reflection and validation

Common Use Cases

  • Application configuration from environment
  • Type-safe config objects
  • Config validation at startup
  • Multi-environment configuration

What Customers Don’t Have to Build

  • Environment variable mapping
  • SNAKE_CASE conversion
  • Validation integration
  • Config reflection
  • Error logging
  • Type-safe config injection
Last updated on