Ethora Backend - Significant Changes Summary
Total Commits: 900+
Latest Commit Date: December 4, 2025
🎯 Major New Features
1. AI Service - Complete New Microservice ⭐
A brand new AI service has been added as a separate microservice:
Location:
/ai_service/Technology Stack:
TypeScript + Express
OpenAI integration (LangChain)
PostgreSQL with Drizzle ORM
MongoDB for bot/conversation data
XMPP client integration
Key Features:
AI Bot Management: Create and update AI-powered chat bots
Document Embedding: Upload and index documents for RAG (Retrieval Augmented Generation)
Site Embedding: Crawl and index websites for knowledge base
XMPP Integration: Bots can interact via XMPP protocol
Vector Database: Uses embeddings for semantic search
Endpoints:
POST /bots- Create AI botPOST /bots-update/:xmppUsername- Update botPOST /site-embedding- Index websitePOST /docs-embedding- Index documentsPOST /delete-link- Remove indexed content
2. Document Indexing & RAG System 📚
Major enhancement to document handling:
New Controllers:
docs-upload.controller.js- Upload and parse documentsdelete-doc-source.js- Delete document sourcessite-source.controller.js- Website indexingsite-source-reindex.controller.js- Reindex websites
Features:
Document parsing service integration
Markdown conversion and storage
Vector embeddings for semantic search
Integration with AI service for RAG
New Models:
documentSource.js- Document metadatasiteSource.js- Website source datadao/siteSource.js- Data access layer
3. Enhanced Statistics & Reporting System 📊
Comprehensive analytics and reporting features:
New Statistics Endpoints:
app.ctrl.getGraphStatistic.js- Graph-based statisticsapp.stat.export.js- Export statisticsexportSessionsGeo.js- Geographic session data
Email Reports:
Daily and weekly automated email reports
CSV attachments with detailed data
Session statistics with geographic data
New app registrations tracking
Registration logs
New Models:
appStat.js- Application statisticssessionsLog.js- User session trackingregistrationLog.js- Registration trackingipGeoCache.js- IP geolocation caching
Services:
appStat.service.js- Statistics calculationappStatDaily.service.js- Daily stats aggregationstats.service.js- General statistics serviceipGeo.js- IP geolocation utility
Cron Jobs:
appStat.cron.js- Automated statistics collectionemailReports.js- Automated email report generation
4. Enhanced Chat System 💬
Major improvements to chat functionality:
New Chat Controllers:
chat.me.js- User's chat informationchat.media.js- Media handlingchat.private.js- Private chat managementchat.public.js- Public chat managementchat.report.js- Chat reportingchat.trackLastMessage.js- Message trackingchat.trackMember.js- Member trackingchat.trackWidgetStat.js- Widget statistics
New Models:
chat.js- Enhanced chat modelchatmedia.js- Media attachmentsuser2chats.js- User-chat relationships
New Routes:
routes/chat.js- Chat-specific routesEnhanced chat tracking and analytics
5. Authentication & Security Enhancements 🔐
JWT Cookie Support:
JWT tokens now stored in HTTP-only cookies
Enhanced security for token management
user.ctrl.refreshToken.js- Token refresh endpointuser.ctrl.logout.js- Proper logout handling
New Services:
jwt.service.js- JWT token managementxmpp.b2b.service.ts- XMPP business-to-business service
6. API Versioning 🚀
New V2 API Routes:
routes/v2/index.js- Version 2 API routerBackward compatibility maintained
New endpoints in V2 for enhanced functionality
7. Redis Integration ⚡
New Redis Connector:
connectors/redis.js- Redis connection managementIntegrated into main app.ts
Caching layer for improved performance
8. App Management Enhancements 📱
New Controllers:
app.ctrl.get.js- Enhanced app retrieval (369 lines)app.ctrl.getConfig.js- App configurationapp.ctrl.put.js- App updates (282 lines)app.ctrl.users.js- User management per appapp.ctrl.getGraphStatistic.js- Graph statistics
Features:
AI bot field in app responses
Enhanced app sorting (including AI-based sorting)
Better app configuration management
9. User Management Updates 👥
New Controllers:
user.ctrl.signupWithEmail.v2.js- Enhanced signupuser.ctrl.signupResend.js- Resend verification
10. Infrastructure & DevOps 🛠️
Package Management:
Added
pnpm-lock.yaml- PNPM supportUpdated dependencies
Configuration:
Enhanced
.env.examplewith new variablesAI service configuration
Redis configuration
Document parsing service URLs
Docker:
AI service docker-compose.yml
Database migrations (Drizzle)
📝 Code Quality Improvements
Middleware:
middlewares/log.mw.js- Enhanced logging
Utilities:
utils/countSessions.js- Session countingutils/getBytesFromString.js- String utilitiesutils/ipGeo.js- IP geolocationutils/migrateAppStat_aitokens.js- Migration utilities
Services:
services/centrifugo.js- Real-time messagingservices/cloudflare.js- Cloudflare integration
🔄 Breaking Changes & Migration Notes
New Dependencies:
Redis connection required
AI service integration (optional but recommended)
Document parsing service
Environment Variables:
REDIS_HOSTandREDIS_PORTrequiredAI_SERVICE_URLandAI_SERVICE_SECRETfor AI featuresDOCS_PARSE_URLandDOCS_PARSE_SECRETfor document indexing
API Changes:
New V2 API routes added
Some endpoints may have changed behavior
Enhanced authentication with cookies
📊 Statistics
Files Changed: 1,130 files
Additions: ~35,003 lines
Deletions: ~49,408 lines
Net Change: -14,405 lines (code cleanup and refactoring)
🎯 Key Pull Requests Merged
PR #14: Sessions to email statistics
PR #13: Enhanced statistics features
PR #12: Statistics improvements
PR #11: Statistics updates
PR #10: Statistics endpoint creation
PR #9: CSV statistics export
PR #8: Login cookies implementation
PR #7: Login cookies refactoring
PR #6: Stats location updates (Country/City)
PR #5: Document indexing
PR #4: Document indexing updates
PR #3: Document indexing fixes
PR #2: Document indexing initial implementation
PR #1: App sorting changes