wulf-pulse/docs
root f117210c9d feat: add scheduled sync system with admin UI
Implements comprehensive scheduled sync system using node-cron with
full admin interface for configuration and monitoring.

Features:
- Configurable sync schedules with cron expressions
- Enable/disable schedules without deletion
- Manual trigger for testing
- Status monitoring (last run, next run, success/failure)
- Error tracking and display
- Incremental and full sync support
- Multiple concurrent schedules
- Admin UI with schedule management

Components:

1. Sync Scheduler Service (lib/services/sync-scheduler.ts)
   - node-cron integration for scheduling
   - Database-backed schedule configuration
   - Automatic initialization on startup
   - Prevents concurrent runs of same schedule
   - Calculates next run times
   - Tracks execution status and errors

2. Database Schema (sync_schedules table)
   - Schedule configuration storage
   - Execution history tracking
   - Last run status and errors
   - Next run calculation

3. API Endpoints
   - GET /api/sync/schedules - List all schedules
   - POST /api/sync/schedules - Create schedule
   - GET /api/sync/schedules/[id] - Get schedule
   - PATCH /api/sync/schedules/[id] - Update schedule
   - DELETE /api/sync/schedules/[id] - Delete schedule
   - POST /api/sync/schedules/[id]/trigger - Manual trigger

4. Admin UI (components/admin/SyncScheduler.tsx)
   - View all schedules with status
   - Create/edit/delete schedules
   - Enable/disable toggle
   - Manual trigger button
   - Cron expression presets
   - Real-time status updates
   - Error message display
   - Next run countdown

5. Default Schedules (created on first startup, disabled)
   - Daily Incremental: 2 AM daily (0 2 * * *)
   - Weekly Full: 3 AM Sunday (0 3 * * 0)

Admin Interface:
- New 'Schedules' tab in sync page
- Schedule cards with status badges
- Enable/disable with play/pause button
- Manual trigger with clock button
- Edit dialog with cron presets
- Create dialog for new schedules
- Real-time status (running, next run, last run)
- Success/failure indicators
- Error message alerts

Cron Features:
- Full cron expression support
- Validation before saving
- Common presets (daily, weekly, hourly)
- Next run time calculation
- Automatic schedule restart on config change

Monitoring:
- Last run timestamp
- Next run countdown (e.g., 'in 2h 15m')
- Success/failure status with icons
- Error messages for failed syncs
- Running indicator (animated badge)
- Schedule validity check

Dependencies:
- node-cron: ^3.0.3
- @types/node-cron: ^3.0.11

UI Components:
- Alert component added (components/ui/alert.tsx)
- Integrated into sync page tabs
- Responsive design

Documentation:
- Complete guide (docs/SCHEDULED_SYNCS.md)
- Cron expression reference
- Best practices
- Troubleshooting guide
- API reference
- Database schema

Use Cases:
1. Daily incremental sync for recent changes
2. Weekly full sync for data integrity
3. Custom schedules for specific needs
4. Off-peak hour automation
5. Backup for webhook failures

Benefits:
- No manual intervention required
- Consistent data freshness
- Flexible scheduling
- Easy monitoring
- Error tracking
- Manual override available

Next Steps:
1. Restart application to initialize scheduler
2. Navigate to Admin → Sync → Schedules tab
3. Enable default schedules or create custom ones
4. Monitor first runs for success
5. Adjust schedules as needed

Files Added/Modified:
- lib/services/sync-scheduler.ts (new)
- app/api/sync/schedules/route.ts (new)
- app/api/sync/schedules/[id]/route.ts (new)
- app/api/sync/schedules/[id]/trigger/route.ts (new)
- components/admin/SyncScheduler.tsx (new)
- components/ui/alert.tsx (new)
- app/admin/sync/page.tsx (modified - added Schedules tab)
- docs/SCHEDULED_SYNCS.md (new)
- package.json (node-cron added)
2026-01-26 10:24:58 -05:00
..
fixes Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
addigy-mapping-implementation.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
AUVIK_TENANT_MAPPING.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
AUVIK_TESTING_GUIDE.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
CHUNKED_SYNC_IMPLEMENTATION.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
configuration-item-goals.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
datto-rmm-device-example.json Add Datto RMM device API documentation 2025-12-04 23:16:01 -05:00
datto-rmm-device-schema.json Add Datto RMM device API documentation 2025-12-04 23:16:01 -05:00
DATTO_RMM_DEVICE_API.md Add Datto RMM device API documentation 2025-12-04 23:16:01 -05:00
rmm-multi-site-integration.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
SCHEDULED_SYNCS.md feat: add scheduled sync system with admin UI 2026-01-26 10:24:58 -05:00
SYNC_BEHAVIOR.md docs: add comprehensive sync behavior documentation 2026-01-24 08:43:35 -05:00
SYNC_DATE_FILTER_FIX.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
SYNC_INTERFACE_GUIDE.md docs: add comprehensive sync interface user guide 2026-01-23 08:32:11 -05:00
SYNC_LOGGING_IMPROVEMENTS.md feat: implement structured logging for sync operations 2026-01-23 08:02:02 -05:00
SYNC_PROGRESS_TRACKING.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
TICKET_SYNC_FIX.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
TIME_ENTRIES_ANALYTICS_IMPLEMENTATION.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
TIME_ENTRIES_ENRICHMENT.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
TIME_ENTRIES_FIX.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
TIME_ENTRIES_SORTING_FIX.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
TIME_ENTRY_FIELD_MAPPING.md Add comprehensive admin features and multi-system integration 2025-11-19 14:18:16 -05:00
WEBHOOK_IP_WHITELISTING.md feat: add IP address logging to webhooks for whitelisting 2026-01-24 17:28:56 -05:00
WEBHOOK_PANGOLIN_SETUP.md docs: add Pangolin tunnel setup guide for webhook endpoint 2026-01-24 17:18:27 -05:00
WEBHOOK_REVERSE_PROXY.md docs: add reverse proxy configuration guide for webhook endpoint 2026-01-24 17:14:55 -05:00
WEBHOOK_SETUP.md feat: add webhook support for real-time Autotask updates 2026-01-24 10:07:20 -05:00
WEBHOOKS_README.md feat: add webhook support for real-time Autotask updates 2026-01-24 10:07:20 -05:00