About configuration-management
A practical guide for developers managing application configuration across environments. It covers environment variables, files, secrets, feature flags, validation, and 12-factor practices.
Key features
- 01Environment-specific configuration
- 02Secret and credential management
- 03Configuration hierarchies
- 04Feature flags and dynamic configuration
- 05Validation and 12-factor practices
Use cases
- 01Set up configuration for development and production
- 02Protect credentials and secrets
- 03Roll out features gradually
- 04Move configuration to cloud services
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill configuration-managementAfter installing, type/configuration-managementin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/12-factor-app-configuration.mdconfiguration-hierarchies.mdconfiguration-validation.mddynamic-configuration-remote-config.mdenvironment-variables.mdfeature-flags.mdsecret-management.mdscripts/validate-schema.shtemplates/migration-template.sqlDetails
From the project READMEConfiguration Management
Table of Contents
Overview
Comprehensive guide to managing application configuration across environments, including environment variables, configuration files, secrets, feature flags, and following 12-factor app methodology.
When to Use
- Setting up configuration for different environments
- Managing secrets and credentials
- Implementing feature flags
- Creating configuration hierarchies
- Following 12-factor app principles
- Migrating configuration to cloud services
- Implementing dynamic configuration
- Managing multi-tenant configurations
Quick Start
Minimal working example:
# .env.development
NODE_ENV=development
PORT=3000
DATABASE_URL=postgresql://localhost:5432/myapp_dev
REDIS_URL=redis://localhost:6379
LOG_LEVEL=debug
API_KEY=dev-api-key-12345
# .env.production
NODE_ENV=production
PORT=8080
DATABASE_URL=${DATABASE_URL} # From environment
REDIS_URL=${REDIS_URL}
LOG_LEVEL=info
API_KEY=${API_KEY} # From secret manager
# .env.test
NODE_ENV=test
DATABASE_URL=postgresql://localhost:5432/myapp_test
LOG_LEVEL=error
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Environment Variables | Environment Variables |
| Configuration Hierarchies | Configuration Hierarchies |
| Secret Management | Secret Management |
| Feature Flags | Feature Flags |
| 12-Factor App Configuration | 12-Factor App Configuration |
| Configuration Validation | Configuration Validation |
| Dynamic Configuration (Remote Config) | Dynamic Configuration (Remote Config) |
Best Practices
✅ DO
- Store configuration in environment variables
- Use different config files per environment
- Validate configuration on startup
- Use secret managers for sensitive data
- Never commit secrets to version control
- Provide sensible defaults
- Document all configuration options
- Use type-safe configuration objects
- Implement configuration hierarchy (base + overrides)
- Use feature flags for gradual rollouts
- Follow 12-factor app principles
- Implement graceful degradation for missing config
- Cache secrets to reduce API calls
❌ DON'T
- Hardcode configuration in source code
- Commit .env files with real secrets
- Use different config formats across services
- Store secrets in plain text
- Expose configuration through APIs
- Use production credentials in development
- Ignore configuration validation errors
- Access process.env directly everywhere
- Store configuration in databases (circular dependency)
- Mix configuration with business logic
Comments
Markdown supported