gamma-multi-env-setup
Gamma Multi-Environment Setup
Contents
Overview
Configure Gamma across development, staging, and production environments with proper isolation, secrets management, and environment guards.
Prerequisites
- Separate Gamma API keys per environment
- Secret management solution (Vault, AWS Secrets Manager, etc.)
- CI/CD pipeline with environment variables
- Environment detection in application
Instructions
Step 1: Create Environment Configuration
Define per-environment settings (timeout, retries, debug mode) in a typed configuration object. Use NODE_ENV to select the active config.
Step 2: Configure Per-Environment API Keys
Store separate API keys in .env.development, .env.staging, and .env.production files. Never commit keys to version control.
Step 3: Integrate Secret Management
For production, use AWS Secrets Manager or Vault to fetch keys at runtime with caching (5-minute TTL recommended).
Step 4: Build a Client Factory
Create a singleton factory that returns environment-aware Gamma clients. Production clients should fetch keys from secret manager; dev/staging can use env vars.
Step 5: Add Environment Guards
Implement requireProduction() and blockProduction() guards to prevent destructive operations in the wrong environment.
Step 6: Configure CI/CD
Set up GitHub Actions (or equivalent) with separate deployment jobs per environment, each using environment-specific secrets.
See detailed implementation for advanced patterns.
Output
- Environment-specific configuration files
- Secret management integration
- Client factory with environment detection
- CI/CD pipeline with environment isolation
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| Wrong API key used | Env var mismatch | Verify NODE_ENV matches key prefix |
| Secret fetch fails | IAM permissions | Check secrets manager access policy |
| Production data in dev | No env guard | Add blockProduction() guards |
Examples
Environment Checklist
| Check | Dev | Staging | Prod |
|---|---|---|---|
| Separate API key | Yes | Yes | Yes |
| Debug logging | On | On | Off |
| Mock mode available | Yes | Yes | No |
| Secret manager | No | Yes | Yes |
| Rate limit tier | Low | Medium | High |