github btouchard/ackify-ce v1.2.2
🎉 Ackify CE v1.2.2 - Admin UX Improvements & Bug Fixes

4 hours ago

Patch release bringing admin user experience improvements, clear distinction between SMTP and MagicLink, and important bug fixes.

✨ What's New

🎨 Admin Interface Improvements

Expected Signers Management:

  • ✅ Delete button now hidden for signers who have already signed
  • ✅ Prevention of invalid operations (deletion impossible after signature)
  • ✅ Clearer and more intuitive interface

Email Reminders Card:

  • ✅ Conditional display based on SMTP availability
  • ✅ Informative alert when SMTP disabled but history exists
  • ✅ Send button hidden when email service disabled
  • ✅ Complete translations (French, English, German, Spanish, Italian)

🔧 SMTP / MagicLink Distinction

Important clarification: SMTP and MagicLink are now two clearly distinct features:

  • SMTP = Email reminder service (auto-detected from ACKIFY_MAIL_HOST)
  • MagicLink = Passwordless email authentication (requires explicit activation)

New variables:

# MagicLink now requires explicit activation
ACKIFY_AUTH_MAGICLINK_ENABLED=true   # + ACKIFY_MAIL_HOST configured

# OAuth can be forced on/off (optional)
ACKIFY_AUTH_OAUTH_ENABLED=true

Frontend variable:

  • New window.ACKIFY_SMTP_ENABLED variable injected in frontend
  • Enables conditional display of email features on client side

🐛 Bug Fixes

Fix #5 - Crash when clicking "Manage" on a document:

  • ✅ Fixed nil pointer panic in ReminderAsyncService.GetReminderStats
  • ReminderAsync and MagicLink services always initialized
  • ✅ Detailed error logs for easier debugging

Fix - Expected Signers Deletion:

  • ✅ Fixed URL decoding of emails (@ character encoded as %40)
  • DELETE /api/v1/admin/documents/{docId}/signers/{email} works correctly
  • ✅ Improved error logging for diagnostics

🔧 Technical Improvements

Backend:

  • Added SMTPEnabled flag in AppConfig to distinguish SMTP from MagicLink
  • URL decoding of emails in DELETE signer endpoint
  • Detailed error logging for expected signer operations
  • Unit tests updated to reflect new MagicLink logic

Frontend:

  • window.ACKIFY_SMTP_ENABLED variable for feature detection
  • Hide delete button for signers who have signed
  • Conditional display of email reminders card
  • Informative alert for disabled email service

Configuration:

  • MagicLink now requires ACKIFY_AUTH_MAGICLINK_ENABLED=true
  • SMTP auto-detected from ACKIFY_MAIL_HOST (independent of MagicLink)
  • Enhanced validation: at least one authentication method required

📚 Documentation

  • ✅ "Authentication Methods" section added to documentation
  • ✅ Clarification of SMTP vs MagicLink distinction
  • ✅ Documentation of new ACKIFY_AUTH_*_ENABLED variables
  • ✅ Updated configuration examples (English + French)

🐛 Detailed Fixes

Issue #5 - Panic on GetReminderStats

Symptom: Crash with "panic: runtime error: invalid memory address" when clicking "Manage" on a document.

Cause: ReminderAsyncService was not always initialized.

Solution:

  • Services always initialized (no nil checks)
  • Detailed error logging added
  • Unit tests updated

Signer Deletion

Symptom: "expected signer not found" error during deletion.

Cause: Email in URL (al@bundy.com) was encoded (al%40bundy.com) but not decoded on server side.

Solution:

  • Added url.QueryUnescape() to decode email
  • Imported net/url package
  • Improved error logging

🔗 Useful Links

📝 Migration from v1.2.1

Version 1.2.2 is 100% backward compatible with v1.2.1.

⚠️ Important Change: MagicLink

Before (v1.2.1): MagicLink automatically enabled if ACKIFY_MAIL_HOST configured.

Now (v1.2.2): MagicLink requires explicit activation:

# To enable MagicLink
ACKIFY_MAIL_HOST="smtp.example.com"          # SMTP configured
ACKIFY_AUTH_MAGICLINK_ENABLED=true           # Explicit activation

If you use MagicLink, add this line to your .env:

ACKIFY_AUTH_MAGICLINK_ENABLED=true

If you only use email reminders (not MagicLink), no change required.

Docker Rebuild

docker compose pull
docker compose up -d

No new database migrations are required for this version.

Full Changelog: v1.2.1...v1.2.2

Don't miss a new ackify-ce release

NewReleases is sending notifications on new releases.