123 lines
5.4 KiB
Markdown
123 lines
5.4 KiB
Markdown
# Recent Updates Summary - August 2025
|
|
|
|
## Overview
|
|
This document summarizes recent enhancements to the partner integration system, API endpoints, and queue infrastructure.
|
|
|
|
## New API Endpoints
|
|
|
|
### Partner Customer Management
|
|
- **GET /api/partners/customers** - Retrieve customers for a partner with subscription info
|
|
- Query parameter: `partnerId` (required)
|
|
- Returns customer details with packageInfo array
|
|
- Excludes raw membership data for cleaner response
|
|
|
|
### Partner Authentication Testing
|
|
- **POST /api/partners/systemUsers/testAuth** - Test partner system user credentials
|
|
- Required fields: `customerId`, `partnerId`, `username`, `password`
|
|
- Tests authentication against partner API
|
|
- Returns flattened response with auth result and partner API details
|
|
- Includes error handling for unsupported partners
|
|
|
|
## Enhanced Job Assignment Features
|
|
|
|
### Aircraft Information Enhancements
|
|
- **tailNumber Field**: Now included in all aircraft responses
|
|
- Available in both `avUsers` and `asUsers` arrays
|
|
- Always present (empty string if not set)
|
|
- Extracted from Vehicle model
|
|
|
|
### Assignment Status Tracking
|
|
- **assignStatus Field**: Added to assigned aircraft (`asUsers`)
|
|
- Shows current assignment status (NEW=0, DOWNLOADED=1, UPLOADED=2)
|
|
- Available only for assigned aircraft, not available aircraft
|
|
- Helps track job upload and processing progress
|
|
|
|
### Assignment API Updates
|
|
- **POST /jobs/assignments** endpoint enhanced
|
|
- Returns aircraft with `tailNumber` and `assignStatus` fields
|
|
- Improved MongoDB aggregation with proper $lookup for assignment status
|
|
- Better error handling and field validation
|
|
|
|
## Queue Infrastructure Improvements
|
|
|
|
### Enhanced Reliability
|
|
- **Channel Management**: Proper reset of `pubChannel` on error/close events
|
|
- **Offline Queue Support**: Tasks queued when AMQP connection unavailable
|
|
- **Error Propagation**: Comprehensive error handling with callbacks
|
|
- **Connection Recovery**: Improved reconnection logic with offline task processing
|
|
|
|
### Code Quality Improvements
|
|
- **Enum Consistency**: All task types now use `PartnerTasks` enum constants
|
|
- Replaced hard-coded strings in `job_worker.js`
|
|
- Added `PartnerTasks` import where missing
|
|
- Consistent task type references across all files
|
|
|
|
### Async/Await Support
|
|
- **addTaskASync()**: Promise-based version of `addTask()`
|
|
- **Proper Error Handling**: Try-catch blocks for all async queue operations
|
|
- **Callback Support**: Maintained backward compatibility with callback-based usage
|
|
|
|
## Service Architecture Enhancements
|
|
|
|
### Partner Service Factory Pattern
|
|
- **Dynamic Service Loading**: Replace hardcoded service instantiation
|
|
- **Service Discovery**: `getSupportedPartners()` method for runtime partner detection
|
|
- **Instance Caching**: Efficient service reuse with caching
|
|
- **Error Handling**: Graceful handling of unsupported partners
|
|
|
|
### Enhanced Partner Authentication
|
|
- **SatLoc Service Updates**: Improved `authenticateAndCache()` method
|
|
- **Response Details**: Returns `originalResponse` field with full API response
|
|
- **Error Context**: Better error messages with API response details
|
|
|
|
## Bug Fixes
|
|
|
|
### Queue Issues Resolved
|
|
- **Silent Task Dropping**: Fixed tasks being dropped when channel unavailable
|
|
- **Double JSON Stringification**: Eliminated duplicate JSON.stringify calls
|
|
- **Channel State Management**: Proper channel lifecycle management
|
|
- **Offline Processing**: Fixed offline queue callback handling
|
|
|
|
### MongoDB Aggregation Fixes
|
|
- **Package Info Null**: Fixed packageInfo returning null due to missing membership data
|
|
- **Field Projection**: Proper handling of computed fields in aggregation pipeline
|
|
- **Data Consistency**: Ensured consistent data structure across all responses
|
|
|
|
## Files Modified
|
|
|
|
### Core Infrastructure
|
|
- `helpers/job_queue.js` - Enhanced queue reliability and error handling
|
|
- `helpers/partner_service_factory.js` - NEW: Service factory implementation
|
|
- `services/satloc_service.js` - Enhanced authentication with response details
|
|
|
|
### Controllers & Routes
|
|
- `controllers/partner.js` - Added new endpoints and improved existing ones
|
|
- `routes/partner.js` - Added routes for new partner endpoints
|
|
- `controllers/job.js` - Enhanced assignment endpoint with aircraft details
|
|
|
|
### Workers
|
|
- `workers/partner_sync_worker.js` - Updated to use async queue methods
|
|
- `workers/partner_data_polling_worker.js` - Improved error handling
|
|
- `workers/job_worker.js` - Replaced hard-coded strings with enum constants
|
|
|
|
### Documentation
|
|
- `docs/API_SPECIFICATION.md` - Added new endpoint documentation
|
|
- `docs/PARTNER_INTEGRATION_IMPLEMENTATION.md` - Updated with queue improvements
|
|
- `docs/RECENT_UPDATES_SUMMARY.md` - NEW: This summary document
|
|
|
|
## Environment Variables
|
|
- **QUEUE_NAME_PARTNER**: Centralized queue name configuration (defaults to `partner_tasks`, auto-prefixes `dev_` in development mode)
|
|
- **Backward Compatibility**: Maintained support for existing configurations
|
|
|
|
## Testing & Validation
|
|
- All syntax validated with no errors
|
|
- Queue operations tested with proper error scenarios
|
|
- API endpoints verified with proper request/response formats
|
|
- MongoDB aggregations validated for data consistency
|
|
|
|
## Next Steps
|
|
1. **Performance Monitoring**: Monitor queue performance with new reliability features
|
|
2. **Partner Expansion**: Use service factory to easily add new partner integrations
|
|
3. **API Testing**: Comprehensive testing of new authentication and customer endpoints
|
|
4. **Documentation**: Update API documentation as new partners are added
|