github dotnetfactory/fluid-calendar v1.2.2
Lots of improvements and refactoring + Docker Image

one day ago

Show me some LOVE at Product Hunt

Please vote at https://www.producthunt.com/posts/fluidcalendar?utm_source=twitter&utm_medium=social

Added

  • Added rate limiting to email queue to limit processing to 2 emails per second
  • Added additional logging to email processor to monitor rate limiting effectiveness
  • Added ability to manually retry failed jobs from the admin jobs interface
  • Added View Details button to jobs in the admin interface to inspect job data, results, and errors
  • Added lifetime subscription interest tracking to waitlist system
    • Implemented interestedInLifetime flag in Waitlist and PendingWaitlist models
    • Added admin notification emails when users express interest in lifetime subscription
    • Updated waitlist API to handle lifetime subscription interest
  • Added background task scheduling system with real-time notifications
    • Implemented task scheduling queue with BullMQ for asynchronous processing
    • Added debouncing mechanism to prevent duplicate scheduling jobs
    • Created SSE (Server-Sent Events) endpoint with Redis-backed notifications
    • Integrated with existing notification system for toast messages
    • Added fallback to direct scheduling for open source version without Redis
  • Docker image now available on GitHub Container Registry (ghcr.io)
  • GitHub workflow for automatic Docker image publication
  • Documentation for using the Docker image in README.md
  • Added scripts/sync-repos-reverse.sh for syncing changes from open source repository back to SAAS repository
  • Added data retention and deletion information to privacy policy to comply with Google's app verification requirements

Changed

  • Modified job retry functionality to update existing job records instead of creating new ones
  • Updated email templates to use "FluidCalendar" instead of "Fluid Calendar" for consistent branding
  • Refactored task scheduling logic into a common service to reduce code duplication
    • Created TaskSchedulingService with shared scheduling functionality
    • Updated both API route and background job processor to use the common service
  • Improved SAAS/open source code separation
    • Moved SAAS-specific API routes to use .saas.ts extension
    • Renamed NotificationProvider to NotificationProvider.saas.tsx
    • Relocated NotificationProvider to SAAS layout for better code organization
    • Updated client-side code to use the correct endpoints based on version

Fixed

  • Fixed type errors in the job retry API by using the correct compound unique key (queueName + jobId)
  • Fixed database connection exhaustion issue in task scheduling:
    • Refactored SchedulingService to use the global Prisma instance instead of creating new connections
    • Updated CalendarServiceImpl and TimeSlotManagerImpl to use the global Prisma instance
    • Added proper cleanup of resources in task scheduling API route
    • Resolved "Too many database connections" errors in production

Don't miss a new fluid-calendar release

NewReleases is sending notifications on new releases.