API Configuration

Configure μlbs applications using environment variables and config files. See full examples below.

Configuration Sources

.env Files

Load configuration from environment files using .env, .env.local, and .env.production patterns.

Runtime API

Access configuration values via mulbs.getConfig() and mulbs.setConfig() during runtime.

CLI Flags

Pass configuration directly from the command line with --config and --env parameters.

Example Configuration

.env File

# .env
PORT=3000
DATABASE_URL=postgres://localhost:5432/mulbs
SECRET_KEY=my-secret-key
NODE_ENV=development

TypeScript Usage

import mulbs from 'mulbs'

// Access configuration
const port = mulbs.getConfig('PORT')

// Modify at runtime
mulbs.setConfig('DEBUG', 'true')

// Validate config
if (!mulbs.hasConfig('DATABASE_URL')) {
  throw new Error('Missing required configuration: DATABASE_URL')
}

Best Practices

Environment Separation

  • Use .env.development and .env.production files for environment-specific settings
  • Always commit .env.example to version control with placeholder values

Security Considerations

  • Never commit .env files to version control
  • Use mulbs.maskConfig() to redact sensitive values in logs
  • Validate all configuration values with mulbs.validateConfig()

Validation Schema

μlbs automatically validates required configuration fields. A type-safe schema is enforced at startup:

{
  PORT: { type: 'number', required: true },
  DATABASE_URL: { type: 'string', required: true },
  DEBUG: { type: 'boolean', default: false },
  RATE_LIMIT: { type: 'integer', default: 1000 }
}

* Schema is extensible using mulbs.addConfigSchema()