Centralized_Reporting_Backend/docs/ENVIRONMENT_VARIABLES.md
2025-10-10 12:10:33 +05:30

292 lines
7.0 KiB
Markdown

# Environment Variables Configuration
## 📋 Required Environment Variables
Copy these to your `.env` file and update the values:
```env
# ============================================
# Database Configuration
# ============================================
DB_HOST=localhost
DB_PORT=3306
DB_NAME=centralized_reporting
DB_USER=root
DB_PASSWORD=your_password
# ============================================
# JWT Configuration
# ============================================
JWT_SECRET=your_jwt_secret_key_here_change_in_production
JWT_EXPIRES_IN=1h
# ============================================
# Redis Configuration (for session storage)
# ============================================
REDIS_HOST=localhost
REDIS_PORT=6379
# ============================================
# Server Configuration
# ============================================
PORT=3000
NODE_ENV=development
API_PREFIX=/api/v1
# ============================================
# n8n Webhook Configuration
# ============================================
# Base URL of your n8n instance (without trailing slash)
N8N_WEBHOOK_URL=https://workflows.tech4bizsolutions.com
# Webhook path (the part between base URL and webhook ID)
# Default: 'webhook' for http://localhost:5678/webhook/ID
# Custom: 'webhook-test' for https://workflows.tech4bizsolutions.com/webhook-test/ID
N8N_WEBHOOK_PATH=webhook-test
# Your n8n workflow webhook ID
N8N_WEBHOOK_ID=04e677f5-ec57-4772-bf12-96f2610d4b9c
# ============================================
# OAuth - Zoho
# ============================================
ZOHO_CLIENT_ID=your_zoho_client_id
ZOHO_CLIENT_SECRET=your_zoho_client_secret
ZOHO_REDIRECT_URI=centralizedreportingsystem://oauth/callback
# ============================================
# OAuth - Salesforce
# ============================================
SALESFORCE_CLIENT_ID=your_salesforce_client_id
SALESFORCE_CLIENT_SECRET=your_salesforce_client_secret
SALESFORCE_REDIRECT_URI=centralizedreportingsystem://oauth/callback
# For production: https://login.salesforce.com
# For sandbox: https://test.salesforce.com
SALESFORCE_INSTANCE_URL=https://login.salesforce.com
# ============================================
# OAuth - HubSpot
# ============================================
HUBSPOT_CLIENT_ID=your_hubspot_client_id
HUBSPOT_CLIENT_SECRET=your_hubspot_client_secret
HUBSPOT_REDIRECT_URI=centralizedreportingsystem://oauth/callback
# ============================================
# Encryption
# ============================================
ENCRYPTION_KEY=changeme
```
---
## 🔧 n8n Webhook URL Configuration
### Your Configuration
Based on your webhook URL: `https://workflows.tech4bizsolutions.com/webhook-test/04e677f5-ec57-4772-bf12-96f2610d4b9c`
```env
N8N_WEBHOOK_URL=https://workflows.tech4bizsolutions.com
N8N_WEBHOOK_PATH=webhook-test
N8N_WEBHOOK_ID=04e677f5-ec57-4772-bf12-96f2610d4b9c
```
**This will construct the webhook URL as:**
```
https://workflows.tech4bizsolutions.com/webhook-test/04e677f5-ec57-4772-bf12-96f2610d4b9c
```
### Default Configuration (Local n8n)
For local n8n instance:
```env
N8N_WEBHOOK_URL=http://localhost:5678
N8N_WEBHOOK_PATH=webhook
N8N_WEBHOOK_ID=04e677f5-ec57-4772-bf12-96f2610d4b9c
```
**This will construct:**
```
http://localhost:5678/webhook/04e677f5-ec57-4772-bf12-96f2610d4b9c
```
---
## 📝 Variable Descriptions
### n8n Webhook Variables
| Variable | Description | Example | Required |
|----------|-------------|---------|----------|
| `N8N_WEBHOOK_URL` | Base URL of n8n instance (no trailing slash) | `https://workflows.tech4bizsolutions.com` | Yes |
| `N8N_WEBHOOK_PATH` | Path segment between base URL and webhook ID | `webhook-test` | Yes |
| `N8N_WEBHOOK_ID` | Unique webhook identifier from n8n workflow | `04e677f5-ec57-4772-bf12-96f2610d4b9c` | Yes |
### How It Works
The client constructs the full webhook URL like this:
```javascript
const url = `${baseUrl}/${webhookPath}/${webhookId}`;
// Result: https://workflows.tech4bizsolutions.com/webhook-test/04e677f5-ec57-4772-bf12-96f2610d4b9c
```
---
## 🔐 Security Notes
### Production Environment
For production, make sure to:
1. **Use Strong JWT Secret**
```env
JWT_SECRET=use_a_long_random_string_here_min_32_chars
```
2. **Use Strong Encryption Key**
```env
ENCRYPTION_KEY=use_a_different_long_random_string
```
3. **Use HTTPS for n8n**
```env
N8N_WEBHOOK_URL=https://workflows.tech4bizsolutions.com
```
4. **Secure Database Credentials**
- Use strong passwords
- Limit database user permissions
- Use environment-specific credentials
### Development Environment
For development, you can use simpler values:
```env
JWT_SECRET=dev_secret_key
ENCRYPTION_KEY=changeme
N8N_WEBHOOK_URL=http://localhost:5678
```
---
## 🧪 Testing Configuration
To verify your n8n webhook configuration:
```bash
# Test the webhook URL
curl -X POST https://workflows.tech4bizsolutions.com/webhook-test/04e677f5-ec57-4772-bf12-96f2610d4b9c \
-H "Content-Type: application/json" \
-d '{
"body": {
"provider": "zoho",
"service": "crm",
"module": "leads",
"acces_token": "test_token"
},
"query": {
"per_page": 100,
"page": 1
}
}'
```
**Expected Response:**
- Should return data from n8n workflow
- Check n8n workflow execution logs
---
## 📦 Required Services
### 1. MySQL Database
```bash
# Check if MySQL is running
mysql -u root -p
# Create database
CREATE DATABASE centralized_reporting;
```
### 2. Redis (Optional but recommended)
```bash
# Check if Redis is running
redis-cli ping
# Should return: PONG
```
### 3. n8n Workflow
- n8n instance must be running at the configured URL
- Workflow must be activated
- Webhook must be accessible
---
## 🔄 Multiple Environments
### Development (.env.development)
```env
N8N_WEBHOOK_URL=http://localhost:5678
N8N_WEBHOOK_PATH=webhook
NODE_ENV=development
```
### Staging (.env.staging)
```env
N8N_WEBHOOK_URL=https://workflows-staging.tech4bizsolutions.com
N8N_WEBHOOK_PATH=webhook-test
NODE_ENV=staging
```
### Production (.env.production)
```env
N8N_WEBHOOK_URL=https://workflows.tech4bizsolutions.com
N8N_WEBHOOK_PATH=webhook-test
NODE_ENV=production
```
---
## ✅ Quick Setup Checklist
- [ ] Copy `.env.example` to `.env`
- [ ] Update database credentials
- [ ] Set strong JWT secret
- [ ] Set strong encryption key
- [ ] Configure n8n webhook URL
- [ ] Add OAuth credentials (Zoho, Salesforce)
- [ ] Verify Redis connection
- [ ] Test n8n webhook accessibility
- [ ] Run database migrations
- [ ] Start the server
- [ ] Test API endpoints
---
## 🆘 Troubleshooting
### "Cannot connect to n8n webhook"
- Verify `N8N_WEBHOOK_URL` is correct
- Check if n8n instance is running
- Verify `N8N_WEBHOOK_PATH` matches your n8n configuration
- Test webhook URL manually with curl
### "Database connection failed"
- Check `DB_HOST`, `DB_PORT`, `DB_NAME`
- Verify database user credentials
- Ensure MySQL service is running
### "Redis connection failed"
- Check `REDIS_HOST` and `REDIS_PORT`
- Verify Redis service is running
- Redis is optional for basic functionality
---
**Last Updated**: October 9, 2025
**Version**: 1.0.0