Releases: kOlapsis/ackify
Ackify CE v1.3.2 - Owner Management & Security Improvements
Feature release adding document owner management, container healthcheck, and several security and compatibility fixes.
⚠️ Important: Query Parameter Renamed (ref → doc) (#19)
The ref query parameter used to reference documents (e.g. https://your-instance.com/?ref=my-doc) has been renamed to doc.
Browser privacy extensions (ClearURLs and similar) were silently stripping the ref parameter from URLs, as it is commonly associated with referrer tracking. This caused documents to fail to load for affected users.
New format: https://your-instance.com/?doc=my-doc
Backward compatible: The old
?ref=parameter is still accepted as a fallback, so existing integrations and external tools will continue to work. However, we recommend updating your links to use?doc=to avoid issues with privacy extensions.
New Features
Owner-Based Document & Signers Management (#16, #17)
Non-admin document owners can now manage their own documents and expected signers without requiring admin privileges (when ACKIFY_ONLY_ADMIN_CAN_CREATE=false).
New endpoints for document owners:
POST /api/v1/users/me/documents/{docId}/signers- Add an expected signerDELETE /api/v1/users/me/documents/{docId}/signers/{email}- Remove an expected signer
Also includes:
- New
CanManageDocumentmethod on theAuthorizerinterface for ownership checks - Properly quoted PostgreSQL identifiers in migrations to support database names containing special characters (e.g. hyphens)
- Returns
403 Forbiddenon owner routes whenACKIFY_ONLY_ADMIN_CAN_CREATE=true
Docker Healthcheck Support (#21)
The container image now includes a built-in healthcheck for better orchestration support.
- New
healthsubcommand on the ackify binary forHEALTHCHECKusage HEALTHCHECKdirective added to the Dockerfile- Healthcheck configuration added to all compose files
- Supports custom port via
ACKIFY_LISTEN_ADDR
Bug Fixes
Signature List Visibility Restricted to Owner/Admin (#20)
Previously, any authenticated user could see all signatures on a document. The signatures endpoint now enforces proper access control:
- Owner/Admin: can see all signatures
- Other users: can only see their own signature (if they signed)
signatureCountis now included in theFindOrCreateDocumentresponse so the frontend can display the total count without exposing individual signatures
Signature Count Not Updated After Signing
The frontend did not refresh the signature count after a user signed a document. Also, the embed page relied on signatures.length instead of the API-provided signatureCount, which was incorrect under the new visibility model.
Fixed: HomePage.vue now updates signatureCount after signing, and EmbedPage.vue uses the API value.
Documentation
- Created comprehensive API documentation (
docs/en/api.md,docs/fr/api.md) - Documented Docker healthcheck in deployment guides
- Documented signature endpoint access control rules
- Fixed MagicLink auto-detection description in READMEs
Useful Links
- Documentation: https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff: v1.3.1...v1.3.2
Upgrading from v1.3.1
This version includes a new database migration (owner management). The migration runs automatically on startup.
Query parameter rename: The ?ref= parameter is now ?doc=. The old ?ref= still works as a fallback, but we recommend updating your integrations to use ?doc= to avoid privacy extension issues.
New environment variable behavior: When ACKIFY_ONLY_ADMIN_CAN_CREATE=true, owner-based management routes return 403 Forbidden.
Update
Via the installation script (recommended)
bash <(curl -fsSL https://raw.githubusercontent.com/btouchard/ackify-ce/main/install/install.sh)The script automatically detects the existing installation and performs the upgrade.
Manually with Docker Compose
docker compose pull
docker compose up -dAckify CE v1.3.1 - Bug Fixes
Ackify CE v1.3.0 - Integrated Reader, Storage & New Design
Major release introducing an integrated document reader, native file storage and a complete user interface redesign.
What's New
Integrated Document Reader
- Direct viewing: intelligent reader allowing document reading without leaving the application (PDF, Markdown, HTML (sanitized))
- Smart read tracking: Automatic detection of complete document reading with scroll tracking
- Integrity verification: Checksum validation on each load to guarantee document authenticity
- Configurable reading options:
- Read mode:
integrated(embedded reader) orexternal(link to external URL) - Download authorization (enabled/disabled per document)
- Full read required before signing (optional)
- Read mode:
Document Storage
- Native file upload: Direct upload of PDFs and other documents (in addition to existing URLs)
- Storage providers: S3 support (MinIO compatible) and local storage
- Automatic S3 bucket creation: Bucket is automatically created if it doesn't exist
- Automatic MIME detection: Extended support including ODF formats (LibreOffice/OpenOffice)
- Automatic checksum calculation: SHA-256 computed on upload to guarantee integrity
New "Technical Trust" Design
- Complete interface redesign: Modern design system with a professional visual identity
- IBM Plex fonts: Technical typography optimized for readability
- Slate palette: Professional and sober colors
- Dark mode: Native dark theme support
- New logos and icons: Renewed visual identity with PWA icons
Tenant Configuration via Admin Interface
- Admin settings page: Runtime configuration without application restart
- SMTP configuration: Integrated connection test to validate email settings
- OIDC/OAuth2 configuration: Endpoint and credential validation
- S3 configuration: Connectivity test to verify storage access
- Hot-reload: Apply changes without service interruption
- Encrypted secrets: Secure AES-256-GCM storage of sensitive information
Anonymous Telemetry (Optional)
- Usage metrics: Anonymous collection of documents, confirmations, webhooks and reminders count
- Opt-in only: Disabled by default, enable via
ACKIFY_TELEMETRY=true - SHM SDK integrated: Integration with SHM metrics service
Migrations
New Migrations
| Migration | Description |
|---|---|
0017_add_reader_fields_to_documents |
Adds reader configuration fields (read_mode, allow_download, require_full_read, verify_checksum) |
0018_add_storage_fields_to_documents |
Adds storage fields (storage_key, storage_provider, file_size, mime_type, original_filename) |
0019_add_tenant_config |
Creates tenant_config table for dynamic per-tenant configuration |
Configuration
New Environment Variables
# Telemetry (optional, disabled by default)
ACKIFY_TELEMETRY=false
# S3 Storage (optional)
ACKIFY_STORAGE_PROVIDER=s3 # 's3' or 'local'
ACKIFY_STORAGE_S3_ENDPOINT=... # S3 Endpoint (e.g., minio.example.com)
ACKIFY_STORAGE_S3_BUCKET=... # Bucket name
ACKIFY_STORAGE_S3_ACCESS_KEY=... # S3 Access key
ACKIFY_STORAGE_S3_SECRET_KEY=... # S3 Secret key
ACKIFY_STORAGE_S3_REGION=... # Region (optional)
ACKIFY_STORAGE_S3_USE_SSL=true # Use HTTPS (default: true)
# Local Storage (optional)
ACKIFY_STORAGE_LOCAL_PATH=/data # Local storage pathUseful Links
- Full changelog: https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation: https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff: v1.2.8...v1.3.0
Upgrading from v1.2.8
This version is 100% backward compatible with v1.2.8. Existing documents continue to work in external URL mode.
Update
Via the installation script (recommended)
bash <(curl -fsSL https://raw.githubusercontent.com/btouchard/ackify-ce/main/install/install.sh)The script automatically detects the existing installation and performs the upgrade.
Manually with Docker Compose
docker compose pull
docker compose up -dMigrations are applied automatically at startup:
- Existing documents default to
integratedmode (transparent behavior) - New storage columns remain null for existing URL documents
- The
tenant_configtable is created for runtime configuration
Enable File Storage
To allow document uploads instead of just URLs:
Option 1: S3 Storage (recommended for production)
ACKIFY_STORAGE_PROVIDER=s3
ACKIFY_STORAGE_S3_ENDPOINT=s3.amazonaws.com
ACKIFY_STORAGE_S3_BUCKET=ackify-documents
ACKIFY_STORAGE_S3_ACCESS_KEY=your_access_key
ACKIFY_STORAGE_S3_SECRET_KEY=your_secret_keyOption 2: Local Storage (development)
ACKIFY_STORAGE_PROVIDER=local
ACKIFY_STORAGE_LOCAL_PATH=/app/data/uploadsEnable Telemetry (optional)
ACKIFY_TELEMETRY=trueTelemetry helps me understand Ackify usage to improve the product. NO PERSONAL DATA IS COLLECTED.
Fixed authentication issue
🐛 Bug Fixes
Issue fixed: Magic Link authentication broken - "provider is disabled" on fresh install.
Fix Magic Link authentication failing on MagicLink-only installations - Fixed an issue where Magic Link authentication would fail with "provider is disabled" error when OAuth was not configured.
The SessionService (required for all authentication methods) was previously only initialized when OAuth was enabled. It is now correctly initialized when ANY authentication method is enabled (OAuth or MagicLink). (#12)
Affected Configurations
This bug affected fresh installations using:
- ACKIFY_AUTH_MAGICLINK_ENABLED=true
- Without OAuth enabled
Upgrade Notes
No migration required. Simply update to v1.2.8
Close #12
Ackify CE v1.2.6 - Architecture & CI/CD
Maintenance release improving internal architecture and CI/CD pipeline stability.
What's New
Enhanced Clean Architecture
- Strict layer separation: Private interfaces at each layer level
- Improved dependency injection: Extraction of
coreapppackages for better organization - Multi-tenant ready: Architecture prepared for multi-tenant support
Email Improvements
- Internationalized email subjects: Reminder email subjects now respect the configured language (i18n)
Migration System
- New migration commands:
force: Force migration version (for existing databases)goto: Migrate to a specific version
- Better handling of existing databases: Support for databases without migration schema
Bug Fixes
CI/CD Pipeline
- Multi-platform build: Added QEMU for Docker build on linux/amd64 and linux/arm64
- Fixed build paths: Corrected go.mod path in backend folder
- Stabilized E2E tests: Absolute paths for templates and locales
Tests
- E2E document creation: Fixed document creation by URL test
Useful Links
- Full changelog: https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation: https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff: v1.2.5...v1.2.6
Upgrading from v1.2.5
This version is 100% backward compatible with v1.2.5.
Update
docker compose pull
docker compose up -dNo database migration or configuration changes required.
Ackify CE v1.2.6 - Architecture & CI/CD
Version de maintenance améliorant l'architecture interne et la stabilité du pipeline CI/CD.
Nouveautés
Architecture Clean Architecture Renforcée
- Séparation stricte des couches : Interfaces privées au niveau de chaque couche
- Injection de dépendances améliorée : Extraction des packages
coreapppour une meilleure organisation - Support Multi-tenant : Préparation de l'architecture pour le support multi-tenant
Améliorations Emails
- Sujet des emails internationalisé : Les sujets d'emails de rappels respectent maintenant la langue configurée (i18n)
Système de Migrations
- Nouvelles commandes de migration :
force: Forcer la version de migration (pour bases existantes)goto: Migrer vers une version spécifique
- Meilleure gestion des bases existantes : Support des bases de données sans schéma de migration
Corrections
CI/CD Pipeline
- Build multi-plateforme : Ajout de QEMU pour le build Docker linux/amd64 et linux/arm64
- Chemins de build corrigés : Correction du chemin go.mod dans le dossier backend
- Tests E2E stabilisés : Chemins absolus pour les templates et locales
Tests
- E2E document creation : Correction du test de création de document par URL
Liens Utiles
- Changelog complet : https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation : https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff : v1.2.5...v1.2.6
Migration depuis v1.2.5
Version 100% rétrocompatible avec v1.2.5.
Mise à jour
docker compose pull
docker compose up -dAucune migration de base de données ou changement de configuration requis.
🎉 Ackify CE v1.2.5 - Microsoft OAuth Support
Patch release adding full support for Microsoft Azure AD / Entra ID as OAuth provider.
🐛 Bug Fixes
🔐 Microsoft OAuth Support (Azure AD / Entra ID)
Issue fixed: Microsoft authentication was failing with "missing email in user info response" error.
Root cause: Microsoft Graph API (https://graph.microsoft.com/v1.0/me) returns user information in different fields than standard OIDC:
mailinstead ofemaildisplayNameinstead ofnameidinstead ofsub
Solution: User info parsing now supports multiple formats:
Email (priority order):
email- Standard OIDC (Google, GitHub, GitLab)mail- Microsoft Graph APIuserPrincipalName- Microsoft fallback (UPN format)
Display name (priority order):
name- Standard OIDCgiven_name+family_name- OIDC claimsdisplayName- Microsoft Graph API (camelCase)cn- LDAPdisplay_name- Some providers (snake_case)preferred_username- Fallback
🧪 Tests
- 3 new test cases for Microsoft Graph API
- Email field priority validation
- Complete multi-provider parsing coverage
📚 Impact
- ✅ Microsoft Azure AD: Working authentication
- ✅ Microsoft Entra ID: Full support
- ✅ Backward compatibility: No impact on other providers (Google, GitHub, GitLab, custom)
🔗 Useful Links
- Full Changelog: https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation: https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff: v1.2.4...v1.2.5
📝 Migration from v1.2.4
Version 100% backward compatible with v1.2.4.
Update
docker compose pull
docker compose up -dNo database migration or configuration changes required.
Microsoft OAuth Configuration
To use Microsoft as OAuth provider:
ACKIFY_OAUTH_PROVIDER="" # Leave empty for custom
ACKIFY_OAUTH_CLIENT_ID="your-client-id"
ACKIFY_OAUTH_CLIENT_SECRET="your-client-secret"
ACKIFY_OAUTH_AUTH_URL="https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize"
ACKIFY_OAUTH_TOKEN_URL="https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token"
ACKIFY_OAUTH_USERINFO_URL="https://graph.microsoft.com/v1.0/me"
ACKIFY_OAUTH_SCOPES="openid,email,profile,User.Read"Replace {tenant} with your Azure tenant ID or common for multi-tenant.
🎉 Ackify CE v1.2.5 - Support Microsoft OAuth
Version de correction ajoutant le support complet de Microsoft Azure AD / Entra ID comme fournisseur OAuth.
🐛 Corrections
🔐 Support Microsoft OAuth (Azure AD / Entra ID)
Problème résolu : L'authentification Microsoft échouait avec l'erreur "missing email in user info response".
Cause : Microsoft Graph API (https://graph.microsoft.com/v1.0/me) retourne les informations utilisateur dans des champs différents du standard OIDC :
mailau lieu deemaildisplayNameau lieu denameidau lieu desub
Solution : Le parsing des informations utilisateur supporte maintenant plusieurs formats :
Email (ordre de priorité) :
email- Standard OIDC (Google, GitHub, GitLab)mail- Microsoft Graph APIuserPrincipalName- Microsoft fallback (format UPN)
Nom d'affichage (ordre de priorité) :
name- Standard OIDCgiven_name+family_name- Claims OIDCdisplayName- Microsoft Graph API (camelCase)cn- LDAPdisplay_name- Certains providers (snake_case)preferred_username- Fallback
🧪 Tests
- 3 nouveaux cas de test pour Microsoft Graph API
- Validation de la priorité des champs email
- Couverture complète du parsing multi-providers
📚 Impact
- ✅ Microsoft Azure AD : Authentification fonctionnelle
- ✅ Microsoft Entra ID : Support complet
- ✅ Rétrocompatibilité : Aucun impact sur les autres providers (Google, GitHub, GitLab, custom)
🔗 Liens Utiles
- Changelog complet : https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation : https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff : v1.2.4...v1.2.5
📝 Migration depuis v1.2.4
Version 100% rétrocompatible avec v1.2.4.
Mise à jour
docker compose pull
docker compose up -dAucune migration de base de données ou changement de configuration requis.
Configuration Microsoft OAuth
Pour utiliser Microsoft comme provider OAuth :
ACKIFY_OAUTH_PROVIDER="" # Laisser vide pour custom
ACKIFY_OAUTH_CLIENT_ID="votre-client-id"
ACKIFY_OAUTH_CLIENT_SECRET="votre-client-secret"
ACKIFY_OAUTH_AUTH_URL="https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize"
ACKIFY_OAUTH_TOKEN_URL="https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token"
ACKIFY_OAUTH_USERINFO_URL="https://graph.microsoft.com/v1.0/me"
ACKIFY_OAUTH_SCOPES="openid,email,profile,User.Read"Remplacez {tenant} par votre tenant ID Azure ou common pour multi-tenant.
🎉 Ackify CE v1.2.4 - CSV Signers Import
✨ New Features
📄 CSV Import for Expected Signers
Bulk import from CSV file:
- ✅ CSV file upload directly from admin interface
- ✅ Data preview before import with validation
- ✅ Automatic separator detection (comma or semicolon)
- ✅ Smart column detection (email, name)
- ✅ Support for files with or without headers
- ✅ Email validation with detailed error report
- ✅ Selective import: ability to modify list before confirmation
- ✅ Configurable limit on number of signers per import
Supported formats:
- CSV with comma (
,) or semicolon (;) separator - Recognized columns: email, e-mail, mail, courriel
- Name columns: name, nom, prénom, firstname, lastname, fullname
- Automatic detection if no header present
Configuration:
ACKIFY_IMPORT_MAX_SIGNERS: maximum signers limit per CSV import (default: 500)
📚 Impact
This feature simplifies expected signers management:
- 🚀 Productivity: Import hundreds of signers in a few clicks
- 🛡️ Reliability: Validation and preview before import
- 🔄 Flexibility: Support for common CSV formats (Excel, Google Sheets, LibreOffice)
🔗 Useful Links
- Full Changelog: https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation: https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff: v1.2.3...v1.2.4
📝 Migration from v1.2.3
Version 100% backward compatible with v1.2.3.
Update
docker compose pull
docker compose up -dNo database migration or configuration changes required.
🎉 Ackify CE v1.2.4 - Import CSV des Signataires
✨ Nouvelles Fonctionnalités
📄 Import CSV des Signataires Attendus
Import en masse depuis fichier CSV :
- ✅ Upload de fichiers CSV directement depuis l'interface admin
- ✅ Prévisualisation des données avant import avec validation
- ✅ Détection automatique du séparateur (virgule ou point-virgule)
- ✅ Détection intelligente des colonnes (email, nom)
- ✅ Support des fichiers avec ou sans en-tête
- ✅ Validation des adresses email avec rapport d'erreurs détaillé
- ✅ Import sélectif : possibilité de modifier la liste avant confirmation
- ✅ Limite configurable du nombre de signataires par import
Formats supportés :
- CSV avec séparateur virgule (
,) ou point-virgule (;) - Colonnes reconnues : email, e-mail, mail, courriel
- Colonnes nom : name, nom, prénom, firstname, lastname, fullname
- Détection automatique si pas d'en-tête
🔧 Améliorations Techniques
Backend :
- Nouveau service
CSVParserpour le parsing robuste des fichiers CSV - Tests unitaires complets pour le parser CSV (edge cases, encodages, formats)
- Endpoints API :
POST /api/v1/admin/documents/{docId}/signers/preview-csvetPOST /api/v1/admin/documents/{docId}/signers/import - Validation et normalisation des emails (lowercase, trim)
Frontend :
- Interface d'upload drag-and-drop pour les fichiers CSV
- Modal de prévisualisation avec tableau des signataires valides/invalides
- Affichage des erreurs de parsing avec numéro de ligne
- Possibilité de supprimer des entrées avant import final
Configuration :
ACKIFY_IMPORT_MAX_SIGNERS: limite maximale de signataires par import CSV (défaut: 500)
📚 Impact
Cette fonctionnalité simplifie la gestion des signataires attendus :
- 🚀 Productivité : Import de centaines de signataires en quelques clics
- 🛡️ Fiabilité : Validation et prévisualisation avant import
- 🔄 Flexibilité : Support des formats CSV courants (Excel, Google Sheets, LibreOffice)
🔗 Liens Utiles
- Changelog complet : https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation : https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff : v1.2.3...v1.2.4
📝 Migration depuis v1.2.3
Version 100% rétrocompatible avec v1.2.3.
Mise à jour
docker compose pull
docker compose up -dAucune migration de base de données ou changement de configuration requis.
🎉 Ackify CE v1.2.3 - Stability & Quality
Maintenance patch release bringing significant improvements to code quality and stability.
✨ Improvements
🧪 Quality Reinforcement
Frontend test coverage:
- ✅ Comprehensive unit tests added for Pinia stores (documents, signatures, users)
- ✅ API services testing (document, signature, auth)
- ✅ Critical UI components testing
- ✅ Significant improvement in frontend code coverage
- ✅ Early regression detection
🔧 Technical Fixes
Build & Dependencies:
- ✅ Eliminated build warnings (vue-i18n, deprecated dependencies)
- ✅ Frontend build now completely clean
- ✅ Improved compatibility with Node.js 20+
Internationalization:
- ✅ Fixed handling of translation keys with literal dots
- ✅ Robust i18n file validation
CI/CD:
- ✅ Stabilized and reliable E2E test pipeline
- ✅ Rate limits configuration for automated tests
- ✅ E2E code coverage maintained
🔧 Technical Improvements
Frontend:
- Complete test suite to ensure stability
- Optimized build without warnings
- Enhanced i18n validation
Backend:
- Rate limits configuration for test environments
- Improved locales and templates handling
Infrastructure:
- More robust CI/CD pipeline
- E2E tests with functional code coverage
- Multi-version Node.js compatibility
📚 Impact
This patch version improves platform reliability and maintainability:
- 🛡️ Quality: Early bug detection through reinforced testing
- 🚀 Stability: Reproducible build without warnings
- 🔄 Maintainability: Better tested and more robust codebase
🔗 Useful Links
- Full Changelog: https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation: https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff: v1.2.2...v1.2.3
📝 Migration from v1.2.2
Version 100% backward compatible with v1.2.2.
Update
docker compose pull
docker compose up -dNo database migration or configuration changes required.
French Version
Version patch de maintenance apportant des améliorations significatives de la qualité et de la stabilité du code.
✨ Améliorations
🧪 Renforcement de la Qualité
Couverture de tests frontend :
- ✅ Tests unitaires complets ajoutés pour les stores Pinia (documents, signatures, users)
- ✅ Tests des services API (document, signature, auth)
- ✅ Tests des composants critiques de l'interface
- ✅ Amélioration significative de la couverture de code frontend
- ✅ Détection précoce des régressions
🔧 Correctifs Techniques
Build & Dépendances :
- ✅ Suppression des warnings de build (vue-i18n, dépendances dépréciées)
- ✅ Build frontend désormais complètement propre
- ✅ Compatibilité améliorée avec Node.js 20+
Internationalisation :
- ✅ Correction de la gestion des clés de traduction avec points littéraux
- ✅ Validation robuste des fichiers i18n
CI/CD :
- ✅ Pipeline de tests E2E stabilisé et fiabilisé
- ✅ Configuration des rate limits pour tests automatisés
- ✅ Couverture de code E2E maintenue
🔧 Améliorations Techniques
Frontend :
- Suite de tests complète pour garantir la stabilité
- Build optimisé et sans warnings
- Validation i18n renforcée
Backend :
- Configuration des rate limits pour environnements de test
- Gestion améliorée des locales et templates
Infrastructure :
- Pipeline CI/CD plus robuste
- Tests E2E avec couverture de code fonctionnelle
- Compatibilité multi-versions Node.js
📚 Impact
Cette version patch améliore la fiabilité et la maintenabilité de la plateforme :
- 🛡️ Qualité : Détection précoce des bugs grâce aux tests renforcés
- 🚀 Stabilité : Build reproductible et sans warnings
- 🔄 Maintenabilité : Base de code mieux testée et plus robuste
🔗 Liens Utiles
- Changelog complet : https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation : https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff : v1.2.2...v1.2.3
📝 Migration depuis v1.2.2
Version 100% rétrocompatible avec v1.2.2.
Mise à jour
docker compose pull
docker compose up -dAucune migration de base de données ou changement de configuration requis.
What's Changed
- feat(mail): add ACKIFY_MAIL_INSECURE_SKIP_VERIFY option by @ArnaudFra in #6
New Contributors
- @ArnaudFra made their first contribution in #6
Full Changelog: v1.2.2...v1.2.3
🎉 Ackify CE v1.2.2 - Admin UX Improvements & Bug Fixes
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=trueFrontend variable:
- New
window.ACKIFY_SMTP_ENABLEDvariable 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 - ✅
ReminderAsyncandMagicLinkservices 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
SMTPEnabledflag inAppConfigto 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_ENABLEDvariable 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_*_ENABLEDvariables - ✅ 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/urlpackage - Improved error logging
🔗 Useful Links
- Full Changelog: https://github.com/btouchard/ackify-ce/blob/main/CHANGELOG.md
- Documentation: https://github.com/btouchard/ackify-ce/blob/main/README.md
- Diff: v1.2.1...v1.2.2
📝 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 activationIf you use MagicLink, add this line to your .env:
ACKIFY_AUTH_MAGICLINK_ENABLED=trueIf you only use email reminders (not MagicLink), no change required.
Docker Rebuild
docker compose pull
docker compose up -dNo new database migrations are required for this version.
Full Changelog: v1.2.1...v1.2.2
🎉 Ackify CE v1.2.1 - Passwordless Authentication & Enhanced Installation
Minor release bringing passwordless Magic Link authentication, new option and installation tooling.
🔐 Magic Link Authentication (Passwordless)
- Passwordless authentication via email (no password required)
- Multi-method support: OAuth and/or MagicLink selectable
- Intelligent authentication method selection page
- Auto-redirect when only one method is configured
- Secure magic links with expiration (15 minutes)
- Automatic cleanup of expired links (background worker)
- HTML and text email templates for magic links
🚀 Simplified Installation
- Interactive and guided installation script
- Automatic environment detection (Docker, PostgreSQL, etc.)
- System prerequisites validation
- Assisted environment variable configuration
- Multi-authentication method support
- Complete and detailed installation documentation
.envtemplates with comprehensive comments
💡New option: Only admin can create document
- Set
ACKIFY_ONLY_ADMIN_CAN_CREATEenvironment variable totruerestrict document creation to admin users.