210 lines
4.4 KiB
Markdown
210 lines
4.4 KiB
Markdown
# 🎯 START HERE - TAT Notifications Setup
|
|
|
|
## What You Need to Do RIGHT NOW
|
|
|
|
### ⚡ 2-Minute Setup (Upstash Redis)
|
|
|
|
1. **Open this link**: https://console.upstash.com/
|
|
- Sign up with GitHub/Google (it's free)
|
|
|
|
2. **Create Redis Database**:
|
|
- Click "Create Database"
|
|
- Name: `redis-tat-dev`
|
|
- Type: Regional
|
|
- Region: Pick closest to you
|
|
- Click "Create"
|
|
|
|
3. **Copy the Redis URL**:
|
|
- You'll see: `rediss://default:AbC123xyz...@us1-mighty-12345.upstash.io:6379`
|
|
- Click the copy button 📋
|
|
|
|
4. **Open** `Re_Backend/.env` and add:
|
|
```bash
|
|
REDIS_URL=rediss://default:AbC123xyz...@us1-mighty-12345.upstash.io:6379
|
|
TAT_TEST_MODE=true
|
|
```
|
|
|
|
5. **Restart Backend**:
|
|
```bash
|
|
cd Re_Backend
|
|
npm run dev
|
|
```
|
|
|
|
6. **Look for this** in the logs:
|
|
```
|
|
✅ [TAT Queue] Connected to Redis
|
|
✅ [TAT Worker] Initialized and listening
|
|
⏰ TAT Configuration:
|
|
- Test Mode: ENABLED (1 hour = 1 minute)
|
|
```
|
|
|
|
✅ **DONE!** You're ready to test!
|
|
|
|
---
|
|
|
|
## Test It Now (6 Minutes)
|
|
|
|
1. **Create a workflow request** via your frontend
|
|
2. **Set TAT: 6 hours** (will become 6 minutes in test mode)
|
|
3. **Submit the request**
|
|
4. **Watch for notifications**:
|
|
- **3 minutes**: ⏳ 50% notification
|
|
- **4.5 minutes**: ⚠️ 75% warning
|
|
- **6 minutes**: ⏰ 100% breach
|
|
|
|
---
|
|
|
|
## Verify It's Working
|
|
|
|
### Check Backend Logs:
|
|
```bash
|
|
# You should see:
|
|
[TAT Scheduler] Calculating TAT milestones...
|
|
[TAT Scheduler] ✅ TAT jobs scheduled
|
|
[TAT Processor] Processing tat50...
|
|
[TAT Processor] tat50 notification sent
|
|
```
|
|
|
|
### Check Upstash Console:
|
|
1. Go to https://console.upstash.com/
|
|
2. Click your database
|
|
3. Click "CLI" tab
|
|
4. Type: `KEYS bull:tatQueue:*`
|
|
5. Should see your scheduled jobs
|
|
|
|
### Check Database:
|
|
```sql
|
|
SELECT
|
|
approver_name,
|
|
tat50_alert_sent,
|
|
tat75_alert_sent,
|
|
tat_breached,
|
|
status
|
|
FROM approval_levels
|
|
WHERE status = 'IN_PROGRESS';
|
|
```
|
|
|
|
---
|
|
|
|
## What Test Mode Does
|
|
|
|
```
|
|
Normal Mode: Test Mode:
|
|
48 hours → 48 minutes
|
|
24 hours → 24 minutes
|
|
6 hours → 6 minutes
|
|
2 hours → 2 minutes
|
|
|
|
✅ Perfect for quick testing!
|
|
✅ Turn off for production: TAT_TEST_MODE=false
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### ❌ "ECONNREFUSED" Error?
|
|
|
|
**Fix**:
|
|
1. Check your `.env` file has `REDIS_URL=rediss://...`
|
|
2. Verify the URL is correct (copy from Upstash again)
|
|
3. Make sure it starts with `rediss://` (double 's')
|
|
4. Restart backend: `npm run dev`
|
|
|
|
### ❌ No Logs About Redis?
|
|
|
|
**Fix**:
|
|
1. Check `.env` file exists in `Re_Backend/` folder
|
|
2. Make sure you restarted the backend
|
|
3. Look for any errors in console
|
|
|
|
### ❌ Jobs Not Running?
|
|
|
|
**Fix**:
|
|
1. Verify `TAT_TEST_MODE=true` in `.env`
|
|
2. Make sure request is SUBMITTED (not just created)
|
|
3. Check Upstash Console → Metrics (see if commands are running)
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
Once you see the first notification working:
|
|
|
|
1. ✅ Test multi-level approvals
|
|
2. ✅ Test early approval (jobs should cancel)
|
|
3. ✅ Test rejection flow
|
|
4. ✅ Check activity logs
|
|
5. ✅ Verify database flags
|
|
|
|
---
|
|
|
|
## Documentation
|
|
|
|
- **Quick Start**: `TAT_QUICK_START.md`
|
|
- **Upstash Guide**: `docs/UPSTASH_SETUP_GUIDE.md`
|
|
- **Full System Docs**: `docs/TAT_NOTIFICATION_SYSTEM.md`
|
|
- **Testing Guide**: `docs/TAT_TESTING_GUIDE.md`
|
|
- **Quick Reference**: `UPSTASH_QUICK_REFERENCE.md`
|
|
|
|
---
|
|
|
|
## Why Upstash?
|
|
|
|
✅ **No installation** (works on Windows immediately)
|
|
✅ **100% free** for development
|
|
✅ **Same setup** for production
|
|
✅ **No maintenance** required
|
|
✅ **Fast** (global CDN)
|
|
✅ **Secure** (TLS by default)
|
|
|
|
---
|
|
|
|
## Production Deployment
|
|
|
|
When ready for production:
|
|
|
|
1. Keep using Upstash OR install Redis on Linux server:
|
|
```bash
|
|
sudo apt install redis-server -y
|
|
```
|
|
|
|
2. Update `.env` on server:
|
|
```bash
|
|
REDIS_URL=redis://localhost:6379 # or keep Upstash URL
|
|
TAT_TEST_MODE=false # Use real hours
|
|
```
|
|
|
|
3. Deploy and monitor!
|
|
|
|
---
|
|
|
|
## Need Help?
|
|
|
|
**Upstash Console**: https://console.upstash.com/
|
|
**Our Docs**: See `docs/` folder
|
|
**Redis Commands**: Use Upstash Console CLI tab
|
|
|
|
---
|
|
|
|
## Status Checklist
|
|
|
|
- [ ] Upstash account created
|
|
- [ ] Redis database created
|
|
- [ ] REDIS_URL copied to `.env`
|
|
- [ ] TAT_TEST_MODE=true set
|
|
- [ ] Backend restarted
|
|
- [ ] Logs show "Connected to Redis"
|
|
- [ ] Test request created and submitted
|
|
- [ ] First notification received
|
|
|
|
✅ **All done? Congratulations!** 🎉
|
|
|
|
Your TAT notification system is now LIVE!
|
|
|
|
---
|
|
|
|
**Last Updated**: November 4, 2025
|
|
**Team**: Royal Enfield Workflow
|
|
|