Gamma Production Checklist
Overview
Comprehensive checklist to ensure your Gamma integration is production-ready.
Prerequisites
- Completed development and testing
- Staging environment validated
- Monitoring infrastructure ready
Production Checklist
1. Authentication & Security
- [ ] Production API key obtained (not development key)
- [ ] API key stored in secret manager (not env file)
- [ ] Key rotation procedure documented and tested
- [ ] Minimum required scopes configured
- [ ] No secrets in source code or logs
// Production client configuration
const gamma = new GammaClient({
apiKey: await secretManager.getSecret('GAMMA_API_KEY'),
timeout: 30000, # 30000: 30 seconds in ms
retries: 3,
});
2. Error Handling
- [ ] All API calls wrapped in try/catch
- [ ] Exponential backoff for rate limits
- [ ] Graceful degradation for API outages
- [ ] User-friendly error messages
- [ ] Error tracking integration (Sentry, etc.)
import * as Sentry from '@sentry/node';
try {
await gamma.presentations.create({ ... });
} catch (err) {
Sentry.captureException(err, {
tags: { service: 'gamma', operation: 'create' },
});
throw new UserError('Unable to create presentation. Please try again.');
}
3. Performance
- [ ] Client instance reused (singleton pattern)
- [ ] Connection pooling enabled
- [ ] Appropriate timeouts configured
- [ ] Response caching where applicable
- [ ] Async operations for long tasks
4. Monitoring & Logging
- [ ] Request/response logging (sanitized)
- [ ] Latency metrics collection
- [ ] Error rate alerting
- [ ] Rate limit monitoring
- [ ] Health check endpoint
// Health check
app.get('/health/gamma', async (req, res) => {
try {
await gamma.ping();
res.json({ status: 'healthy', service: 'gamma' });
} catch (err) {
res.status(503).json({ status: 'unhealthy', error: err.message }); # HTTP 503 Service Unavailable
}
});
5. Rate Limiting
- [ ] Rate limit tier confirmed with Gamma
- [ ] Request queuing implemented
- [ ] Backoff strategy in place
- [ ] Usage monitoring alerts
- [ ] Burst protection enabled
6. Data Handling
- [ ] PII handling compliant with policies
- [ ] Data retention policies documented
- [ ] Export data properly secured
- [ ] User consent for AI processing
- [ ] GDPR/CCPA compliance verified
7. Disaster Recovery
- [ ] Fallback behavior defined
- [ ] Circuit breaker implemented
- [ ] Recovery procedures documented
- [ ] Backup API key available
- [ ] Incident response plan ready
import CircuitBreaker from 'opossum';
const breaker = new CircuitBreaker(
(opts) => gamma.presentations.create(opts),
{
timeout: 30000, # 30000: 30 seconds in ms
errorThresholdPercentage: 50,
resetTimeout: 30000, # 30 seconds in ms
}
);
breaker.fallback(() => ({
error: 'Service temporarily unavailable',
retry: true,
}));
8. Testing
- [ ] Integration tests passing
- [ ] Load testing completed
- [ ] Failure scenario testing done
- [ ] API mock for CI/CD
- [ ] Staging environment validated
9. Documentation
- [ ] API integration documented
- [ ] Runbooks for common issues
- [ ] Architecture diagrams updated
- [ ] On-call procedures defined
- [ ] Team trained on Gamma features
Final Verification Script
#!/bin/bash
set -euo pipefail
# prod-verify.sh
echo "Gamma Production Verification"
# Check API key
if [ -z "$GAMMA_API_KEY" ]; then
echo "FAIL: GAMMA_API_KEY not set"
exit 1
fi
# Test connection
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $GAMMA_API_KEY" \
https://api.gamma.app/v1/ping | grep -q "200" \ # HTTP 200 OK
&& echo "OK: API connection" \
|| echo "FAIL: API connection"
echo "Verification complete"
Resources
Next Steps
Proceed to gamma-upgrade-migration for version upgrades.