Skip to content

Releases: Abdullah00001/workly-contacts-server

v1.6.4

07 Nov 10:12

Choose a tag to compare

Release v1.6.4: Avatar Upload Worker Fix

Released: November 7, 2025

This is a hotfix to address a bug in the background avatar processing queue.


✅ Fixed

  • Fixed a critical bug where the AvatarUploadQueue was initialized with the wrong queue name (account-deletion-queue instead of avatar-upload-queue).
  • This mismatch prevented the avatar worker from picking up any jobs, causing all background avatar uploads to fail silently.
  • Avatars for new Google OAuth signups will now be processed and updated correctly.

What's Changed

  • fix(auth): Prevent server crash from unhandled Google strategy errors by @Abdullah00001 in #60
  • fix(avatar): Correct queue name for avatar uploads by @Abdullah00001 in #61

Full Changelog: v1.6.3...v1.6.4

v1.6.3

07 Nov 06:47

Choose a tag to compare

Release v1.6.3: Critical Auth Stability Fix

Released: November 7, 2025

This is a critical stability release, following up on v1.6.2.

This patch fixes a server crash and restart loop that occurred during the Google OAuth signup flow. Even after the OOM fix, an unhandled E11000 (duplicate key) database error was triggered when a second OAuth user (with a null password) attempted to sign up.

This unhandled error crashed the main application process, causing the server to restart.


✅ Fixed

  • Critical Stability: The server will no longer crash when a database error occurs during the Google OAuth signup.
  • Error Handling: The passport-google-oauth20 strategy is now wrapped in a try...catch block. This ensures all database errors (like the E11000) are safely caught and handled, preventing the Node.js process from exiting.

What's Changed

  • fix(auth): Prevent OOM crashes by making Google avatar upload asynchronous by @Abdullah00001 in #59

Full Changelog: v1.6.2...v1.6.3

v1.6.2

07 Nov 06:14

Choose a tag to compare

Release v1.6.2: Critical Stability & OAuth Performance Fix

Released: November 7, 2025

This is a critical stability and performance release.

It addresses a major issue where new user signups via Google OAuth were causing high API latency (>7s) and, more critically, leading to Out-of-Memory (OOM) crashes and frequent machine restarts on our production servers. 🚀

The root cause was a blocking, memory-intensive avatar upload process in the main application thread. This has been refactored to be fully asynchronous using a background job queue.


✅ Fixed

  • Critical Stability: Resolved the bug causing frequent machine restarts (OOM crashes) during the Google OAuth signup flow. The memory-intensive avatar upload is no longer handled in the main application thread.
  • Performance: Fixed the severe performance bottleneck where the Google OAuth signup endpoint would block for 7+ seconds. The response time is now near-instantaneous.

✨ New

  • Avatar Upload Queue: Introduced a new AvatarUploadQueue (BullMQ) to process avatar uploads asynchronously in the background.
  • Background Worker: Added a new worker process to consume the AvatarUploadQueue. This worker is responsible for fetching the avatar from Google (using a memory-safe stream) and uploading it to Cloudinary.
  • Job Resilience: The new queue job is configured to retry 3 times with exponential backoff, improving the success rate of avatar uploads during temporary network or API failures.

🔧 Changed

  • Google OAuth Flow: The passport-google-oauth20 strategy no longer waits for the avatar upload. It now creates the user with a null avatar and enqueues the background job, returning a response to the user immediately.

What's Changed

  • fix: resolve production cookie and redirect issues, update changelog for v1.6.1 by @Abdullah00001 in #58

Full Changelog: v1.6.0...v1.6.2

v1.6.1

07 Nov 04:04

Choose a tag to compare

🚀 Release v1.6.1 — Hot-fix: Cookie & Deployment Patch

🧩 Overview

This release focuses on resolving critical issues related to cookie handling and redirect behavior in the production environment.
Additionally, a fix has been applied to the CI/CD deployment workflow to correct an invalid --region flag.


🐞 Fixes

  • fix(cookie): resolved issue where cookies were not properly set in production
  • fix(redirect): fixed redirect loop/handling issue after authentication
  • fix(cd-pipeline): corrected invalid --region flag in deploy workflow

🧾 Documentation

  • docs(CHANGELOG): updated changelog for v1.6.1

🔧 Technical Notes

  • Ensures stable authentication flow across environments
  • Improves reliability of automated deployments
  • No database or API schema changes introduced

✅ Summary

A stability-focused hot-fix ensuring consistent session handling and smoother deployment operations.

What's Changed

  • fix: resolve production cookie and redirect issues, update changelog for v1.6.1 by @Abdullah00001 in #58

Full Changelog: v1.6.0...v1.6.1

v1.6.0

05 Nov 19:58
82aeaed

Choose a tag to compare

🚀 v1.6.0 - Workly Contacts Production Deployment & CI/CD

Overview

This release focuses on deploying Workly Contacts to production on Fly.io with full CI/CD integration. It also introduces major backend improvements, security enhancements, and new features for contact and account management.


✨ What's New

  • Production Deployment & CI/CD: Application fully deployed to Fly.io with persistent storage. GitHub Actions automates Docker image build, push, and deployment on version tags.
  • OAuth & Account Management Enhancements: Enforced OAuth password creation, automated account deletion workflow, and account unlock module implemented.
  • Label System: Full CRUD operations for labels, with contact labeling and alphabetical sorting.

♻️ Improvements

  • Import & Export Contacts: Endpoints added with file validation; removed Redis caching for reliability.
  • Session Management & Security: Self-healing session in checkSessionLimit middleware; refresh tokens aligned with session and cookie handling.
  • Contact Schema Updates: Added first and last name fields; fixed session and refresh token issues.
  • Search & Feedback: Single contact export, improved search and feedback handling.

🛠 Fixes

  • UI & Responsiveness: Improved mobile search, dashboard table, and UI responsiveness across pages.
  • Contact Images: Removed discarded images from Cloudinary and reset payload state.
  • Authentication & Middleware: Bug fixes for OAuth, local login, JWT utils, and activity queue handling.

✅ Stability & Testing

  • Fully tested locally for stability with backend v1.6.0.
  • Verified CI/CD pipeline and Fly.io deployment readiness.
  • Security improvements validated for account and session flows.

Thanks for using Workly Contacts! This release ensures smoother deployments, better security, and an improved user experience.

🔖 Tagged as: v1.6.0
📅 Release Date: November 5, 2025

What's Changed

  • feat(infra): Implement Fly.io production deployment and CI/CD by @Abdullah00001 in #57
  • chore(release): merge release/v1.6.0 into main by @Abdullah00001 in #56
  • refactor(login): add self-healing session in checkSessionLimit middleware and fix JWT utils tests by @Abdullah00001 in #55
  • fix: enhance authentication security, enforce OAuth password creation, and implement automated account deletion workflow by @Abdullah00001 in #54
  • feat(contacts): Add label management system with CRUD operations, contact labeling, and alphabetical sorting by @Abdullah00001 in #53
  • fix(search & feedback): export single contact, improve search and feedback handling by @Abdullah00001 in #52
  • feat(export): implement export endpoint to retrieve contact data for client-side export by @Abdullah00001 in #51
  • feat(import/contacts): add import endpoint with validation, fix sessions & contact schema by @Abdullah00001 in #50
  • feat(import): add contacts import endpoint with file validation and remove Redis caching by @Abdullah00001 in #49
  • refactor(contact): add first and last name fields + fix session & refresh token issues by @Abdullah00001 in #48
  • fix(auth): align refresh token expiry with session and cookie for OAuth and local login by @Abdullah00001 in #47
  • feature(account-center): implement activity endpoints, refactor auth, and fix profile/refresh bugs by @Abdullah00001 in #46

Full Changelog: v1.6.0...v1.6.0

v1.5.0

04 Jul 18:46
129e82f

Choose a tag to compare

🚀 v1.5.0 - Contact Management Enhancements

Overview

This release brings powerful updates to the contact management module, making it more efficient, user-friendly, and consistent. Users can now edit contacts directly, and backend logic has been optimized for better performance.


✨ What's New

  • Edit Contact Support: Users can now edit their existing contact details including name, email, phone number, and image.

♻️ Improvements

  • Favorite & Trash Query Optimized: Enhanced backend logic for fetching favorite and trashed contacts more efficiently and accurately.
  • Single Trash Endpoint Introduced: Replaced multiple delete/trash endpoints with a unified, cleaner API route.

🛠 Fixes

  • Image Upload Issue Resolved: Fixed a bug where contact image uploads were failing or not replacing correctly.

✅ Stability & Testing

  • All changes were tested locally for stability.
  • Minor refactors were done to prepare for upcoming features like pagination and advanced filters.

Thanks for using our app! More improvements and features coming in the next version.

🔖 Tagged as: v1.5.0
📅 Release Date: July 4, 2025

What's Changed

Full Changelog: v1.4.0...v1.5.0

v1.4.0

25 Jun 14:31

Choose a tag to compare

📦 Release v1.4.0 – Image Upload & Delete Functionality

🚀 New Features

  • Image Module Setup

    • Initialized the image module with route configuration and controller structure.
  • Upload Endpoint

    • POST /image to handle image uploads via Multer and store them on Cloudinary.
    • Automatically deletes local temp files after a successful upload.
  • Delete Endpoint

    • DELETE /image/:public_id to remove uploaded images from Cloudinary using their public_id.

🛠 Technical Notes

  • Integrated Cloudinary for image storage.
  • Used Multer middleware to handle multipart/form-data.
  • Implemented auto-cleanup of local images post-upload.

✅ Tested

  • Verified both endpoints through local testing.
  • Added basic validations and error handling.

What's Changed

Full Changelog: v1.3.2...v1.4.0

v1.3.2

22 Jun 15:02

Choose a tag to compare

🛠️ Amar Contacts API - v1.3.2

This patch release addresses a critical issue with production deployments by updating and fixing the CI/CD pipeline configuration.

What’s Fixed

  • Fixed the production deployment problem that was blocking releases.
  • Improved the CI/CD pipeline to ensure smoother and more reliable automated deployments.

Thank you for your patience and support!


➡️ Next steps: Continuing to improve deployment automation and monitoring.

Full Changelog: v1.3.1...v1.3.2

v1.3.1

22 Jun 10:40

Choose a tag to compare

🚀 Release: v1.3.1 (2025-06-22)

This patch release addresses a CI/CD pipeline failure caused by missing test setup files during Docker builds. The issue was resolved by updating the .dockerignore configuration.

🐛 Bug Fixes

  • Fixed test execution failure in CI/CD by ensuring __tests__/jest.setup.ts is included during Docker builds.
  • Removed __tests__ from .dockerignore, allowing Jest to run setup scripts properly in containerized environments.

🛠 Maintenance

  • Improved consistency and reliability of Docker-based CI/CD workflows.

✅ All tests are now running and passing successfully during CI builds.

📦 Docker image builds are now reproducible with full test coverage.

Full Changelog: v1.3.0...v1.3.1

v1.3.0

22 Jun 10:12

Choose a tag to compare

🚀 Amar Contacts API - v1.3.0

We’re excited to announce v1.3.0 of the Amar Contacts API!
This release brings full Swagger documentation, major upgrades in profile and contact management, and a robust testing infrastructure to ensure quality and reliability.


🔥 Highlights

  • Swagger (OpenAPI) Documentation added for all endpoints.
  • 👤 Profile Management:
    • View & Update Profile
    • Change Password
    • Delete Account
  • 📇 Contacts Enhancements:
    • Create, Read, Update, Delete (CRUD)
    • Add to Favorites & Trash
    • Search and filter functionality
  • 💬 Feedback Submission Endpoint added

🧪 Testing & Code Quality

  • Comprehensive unit tests for:
    • User repository
    • Password and cookie utilities
    • Mail options and environment config
  • Edge case handling tested for key utilities
  • Test environment setup and automated in the build pipeline

📝 Documentation & Maintenance

  • Updated README.md, SECURITY.md, and LICENSE
  • Enhanced build scripts with bash UI and test integration
  • Removed incomplete tests and reorganized utils

📌 Contributors

Thanks to @Abdullah00001 for all contributions in this release 🙌


➡️ Next Up: Integration tests, performance improvements, and rate limiting!