jeremylongshore/claude-code-plugins-plus-skills
juicebox-pack
plugins/saas-packs/juicebox-pack/skills/juicebox-multi-env-setup/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/main/plugins/saas-packs/juicebox-pack/skills/juicebox-multi-env-setup/SKILL.md -a claude-code --skill juicebox-multi-env-setupInstallation paths:
.claude/skills/juicebox-multi-env-setup/# Juicebox Multi-Environment Setup
## Overview
Configure Juicebox across development, staging, and production environments with proper isolation and security.
## Prerequisites
- Separate Juicebox accounts or API keys per environment
- Secret management solution (Vault, AWS Secrets Manager, etc.)
- CI/CD pipeline with environment variables
- Environment detection in application
## Environment Strategy
| Environment | Purpose | API Key | Rate Limits | Data |
|-------------|---------|---------|-------------|------|
| Development | Local dev | Sandbox | Relaxed | Mock/Test |
| Staging | Pre-prod testing | Test | Production | Subset |
| Production | Live system | Production | Full | Real |
## Instructions
### Step 1: Environment Configuration
```typescript
// config/environments.ts
interface JuiceboxEnvConfig {
apiKey: string;
baseUrl: string;
timeout: number;
retries: number;
sandbox: boolean;
}
const configs: Record<string, JuiceboxEnvConfig> = {
development: {
apiKey: process.env.JUICEBOX_API_KEY_DEV!,
baseUrl: 'https://sandbox.api.juicebox.ai',
timeout: 30000,
retries: 1,
sandbox: true
},
staging: {
apiKey: process.env.JUICEBOX_API_KEY_STAGING!,
baseUrl: 'https://api.juicebox.ai',
timeout: 30000,
retries: 2,
sandbox: false
},
production: {
apiKey: process.env.JUICEBOX_API_KEY_PROD!,
baseUrl: 'https://api.juicebox.ai',
timeout: 60000,
retries: 3,
sandbox: false
}
};
export function getConfig(): JuiceboxEnvConfig {
const env = process.env.NODE_ENV || 'development';
const config = configs[env];
if (!config) {
throw new Error(`Unknown environment: ${env}`);
}
if (!config.apiKey) {
throw new Error(`JUICEBOX_API_KEY not set for ${env}`);
}
return config;
}
```
### Step 2: Secret Management by Environment
```typescript
// lib/secrets.ts
import { SecretsManager } from '@aws-sdk/client-secrets-manager';
const secretPaths: Record<string, string> = {
developmen