mcpField
C
configuration-management

configuration-management

github.com/aj-geddesDevelopment373445 installsUpdated 34w ago
Repository

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

  1. 01Environment-specific configuration
  2. 02Secret and credential management
  3. 03Configuration hierarchies
  4. 04Feature flags and dynamic configuration
  5. 05Validation and 12-factor practices

Use cases

  1. 01Set up configuration for development and production
  2. 02Protect credentials and secrets
  3. 03Roll out features gradually
  4. 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-management

After 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.md
configuration-hierarchies.md
configuration-validation.md
dynamic-configuration-remote-config.md
environment-variables.md
feature-flags.md
secret-management.md
scripts/
validate-schema.sh
templates/
migration-template.sql

Details

From the project README

Configuration 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:

GuideContents
Environment VariablesEnvironment Variables
Configuration HierarchiesConfiguration Hierarchies
Secret ManagementSecret Management
Feature FlagsFeature Flags
12-Factor App Configuration12-Factor App Configuration
Configuration ValidationConfiguration 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