Date: February 13, 2026
API keys (Gemini, Manus, Render, Notion) were accidentally committed to the repository in documentation files:
DEPLOYMENT_SUCCESS.mdCOMPLETE_SESSION_SUMMARY.md
- β Removed all API keys from documentation
- β
Added
.gitignoreto prevent future commits - β
Created
.env.exampletemplate - β Added comprehensive README with security guidelines
If you cloned this repository before February 13, 2026:
- Delete your local clone immediately
- Rotate ALL API keys:
- Gemini API: https://ai.google.dev/
- Manus API: https://manus.ai/
- Render API: https://dashboard.render.com/
- Notion API: https://www.notion.so/my-integrations
- Re-clone the repository fresh
- Never use the exposed keys
This repository now implements:
- β
.gitignoreprevents.envcommits - β
.env.exampletemplate for configuration - β Documentation scrubbed of all secrets
- β Environment variables only
- β
X-API-Keyheader required for all endpoints - β Rate limiting (100 req/15min per IP)
- β CORS restrictions
- β Request size limits
- β Generic errors for production
- β Technical details logged server-side only
- β No API key leakage in responses
- β Requires authentication
- β Limited information exposure
If you discover a security vulnerability:
- DO NOT open a public GitHub issue
- Email: [security contact - add your email]
- Include:
- Description of vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We will respond within 48 hours.
Never commit:
- API keys
- Passwords
- Private keys
.envfilessecrets.json- Database credentials
Always:
- Use environment variables
- Review commits before pushing
- Enable GitHub secret scanning
- Rotate keys regularly
- Use strong, unique keys
Render Configuration:
- Add all secrets as environment variables in dashboard
- Enable auto-deploy from
mainbranch only - Review deployment logs for exposed secrets
- Use HTTPS only (enabled by default)
API Key Management:
- Generate strong random keys (
openssl rand -base64 32) - Store in password manager
- Rotate every 90 days
- Revoke immediately if exposed
Before deploying:
- All API keys in environment variables
-
.envin.gitignore - No secrets in documentation
- Authentication enabled
- Rate limiting configured
- CORS properly set
- HTTPS enforced
- Error messages sanitized
- Logs don't contain secrets
- Dependencies up to date
# Check for vulnerabilities
npm audit
# Fix automatically
npm audit fix
# Update dependencies
npm updateTo prevent abuse and credit drain:
| Endpoint | Limit | Window |
|---|---|---|
/api/chat |
100 requests | 15 minutes |
/health |
20 requests | 1 minute |
All requests require X-API-Key header:
curl -H "X-API-Key: your_secret_key" \
https://manus-proxy-1.onrender.com/api/chatGenerating secure keys:
# Generate 32-byte random key
openssl rand -base64 32
# Or use Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"If API keys are exposed:
-
Immediate (within 1 hour):
- Revoke exposed keys
- Generate new keys
- Update Render environment variables
- Force restart service
-
Short-term (within 24 hours):
- Review git history for other exposures
- Purge secrets from git history
- Monitor API usage for abuse
- Check for unauthorized charges
-
Long-term (within 1 week):
- Audit all deployment processes
- Update security documentation
- Train team on security practices
- Implement automated secret scanning
If secrets were committed:
# Using BFG Repo-Cleaner (recommended)
bfg --replace-text passwords.txt repo.git
# Using git filter-repo
git filter-repo --path DEPLOYMENT_SUCCESS.md --invert-paths
# Force push (DANGEROUS - coordinate with team)
git push origin --force --allWatch for:
- Unusual API usage spikes
- Geographic anomalies
- Failed authentication attempts
- Quota exhaustion
- Error rate increases
For security issues:
- GitHub: [Open a private security advisory]
- Email: [Add security contact]
Last Updated: February 13, 2026 Next Review: March 13, 2026