Skip to content

Releases: btouchard/ackify-ce

Ackify CE v1.3.0 - Integrated Reader, Storage & New Design

21 Jan 11:02

Choose a tag to compare

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) or external (link to external URL)
    • Download authorization (enabled/disabled per document)
    • Full read required before signing (optional)

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 path

Useful Links

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 -d

Migrations are applied automatically at startup:

  • Existing documents default to integrated mode (transparent behavior)
  • New storage columns remain null for existing URL documents
  • The tenant_config table 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_key

Option 2: Local Storage (development)

ACKIFY_STORAGE_PROVIDER=local
ACKIFY_STORAGE_LOCAL_PATH=/app/data/uploads

Enable Telemetry (optional)

ACKIFY_TELEMETRY=true

Telemetry helps me understand Ackify usage to improve the product. NO PERSONAL DATA IS COLLECTED.

Fixed authentication issue

18 Dec 12:02

Choose a tag to compare

πŸ› 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

10 Dec 16:16

Choose a tag to compare

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 coreapp packages 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

Upgrading from v1.2.5

This version is 100% backward compatible with v1.2.5.

Update

docker compose pull
docker compose up -d

No 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 coreapp pour 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

Migration depuis v1.2.5

Version 100% rΓ©trocompatible avec v1.2.5.

Mise Γ  jour

docker compose pull
docker compose up -d

Aucune migration de base de donnΓ©es ou changement de configuration requis.

πŸŽ‰ Ackify CE v1.2.5 - Microsoft OAuth Support

01 Dec 14:14

Choose a tag to compare

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:

  • mail instead of email
  • displayName instead of name
  • id instead of sub

Solution: User info parsing now supports multiple formats:

Email (priority order):

  1. email - Standard OIDC (Google, GitHub, GitLab)
  2. mail - Microsoft Graph API
  3. userPrincipalName - Microsoft fallback (UPN format)

Display name (priority order):

  1. name - Standard OIDC
  2. given_name + family_name - OIDC claims
  3. displayName - Microsoft Graph API (camelCase)
  4. cn - LDAP
  5. display_name - Some providers (snake_case)
  6. 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

πŸ“ Migration from v1.2.4

Version 100% backward compatible with v1.2.4.

Update

docker compose pull
docker compose up -d

No 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 :

  • mail au lieu de email
  • displayName au lieu de name
  • id au lieu de sub

Solution : Le parsing des informations utilisateur supporte maintenant plusieurs formats :

Email (ordre de prioritΓ©) :

  1. email - Standard OIDC (Google, GitHub, GitLab)
  2. mail - Microsoft Graph API
  3. userPrincipalName - Microsoft fallback (format UPN)

Nom d'affichage (ordre de prioritΓ©) :

  1. name - Standard OIDC
  2. given_name + family_name - Claims OIDC
  3. displayName - Microsoft Graph API (camelCase)
  4. cn - LDAP
  5. display_name - Certains providers (snake_case)
  6. 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

πŸ“ Migration depuis v1.2.4

Version 100% rΓ©trocompatible avec v1.2.4.

Mise Γ  jour

docker compose pull
docker compose up -d

Aucune 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

27 Nov 15:16

Choose a tag to compare

✨ 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

πŸ“ Migration from v1.2.3

Version 100% backward compatible with v1.2.3.

Update

docker compose pull
docker compose up -d

No 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 CSVParser pour 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-csv et POST /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

πŸ“ Migration depuis v1.2.3

Version 100% rΓ©trocompatible avec v1.2.3.

Mise Γ  jour

docker compose pull
docker compose up -d

Aucune migration de base de donnΓ©es ou changement de configuration requis.

πŸŽ‰ Ackify CE v1.2.3 - Stability & Quality

24 Nov 13:24

Choose a tag to compare

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

πŸ“ Migration from v1.2.2

Version 100% backward compatible with v1.2.2.

Update

docker compose pull
docker compose up -d

No 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

πŸ“ Migration depuis v1.2.2

Version 100% rΓ©trocompatible avec v1.2.2.

Mise Γ  jour

docker compose pull
docker compose up -d

Aucune 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

Full Changelog: v1.2.2...v1.2.3

πŸŽ‰ Ackify CE v1.2.2 - Admin UX Improvements & Bug Fixes

21 Nov 23:56

Choose a tag to compare

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 ([email protected]) 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

πŸŽ‰ Ackify CE v1.2.1 - Passwordless Authentication & Enhanced Installation

07 Nov 23:20

Choose a tag to compare

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
  • .env templates with comprehensive comments

πŸ’‘New option: Only admin can create document

  • Set ACKIFY_ONLY_ADMIN_CAN_CREATE environment variable to true restrict document creation to admin users.

πŸŽ‰ Ackify CE v1.2.0 - API-First Architecture with SPA, Enhanced Security & Webhooks

27 Oct 23:36

Choose a tag to compare

Major release bringing a complete architectural overhaul with a modern RESTful API, Vue 3 interface, and significant security improvements.

✨ Key Features

🌐 API-First Architecture with Vue 3 SPA

  • Complete RESTful v1 API with structured endpoints (/api/v1/*)
  • Modern and reactive Vue 3 + TypeScript interface
  • Pinia for centralized state management
  • Mobile support with responsive design
  • Version number display in the interface

πŸ” Enhanced Security

  • OAuth 2.0 with PKCE (Proof Key for Code Exchange) for protection against interception
  • Signed webhooks with HMAC authentication for secure notifications
  • Reinforced rate limiting on sensitive endpoints (document creation via embed)
  • Authorization middleware for public routes

πŸš€ New Features

  • Multilingual with English, French, Spanish, Italian, and German
  • Optional auto-login for a seamless user experience
  • Optimized public embed with protection and rate limiting
  • Structured logging with request tracking (request ID) for observability
  • oEmbed support for integration in documentation tools

🐳 Docker Optimizations

  • Improved multi-stage build (Node + Go)
  • Lighter and more efficient images
  • Optimized CI/CD pipeline with automatic push to latest

πŸ”§ Fixes and Improvements

  • Resolved concurrency issues in integration tests
  • Random database names to avoid collisions in CI
  • Separation of unit and integration test coverage
  • Various CI/CD pipeline fixes

πŸ“š Documentation

  • Complete API documentation (/api/v1/openapi.json)

πŸ”— Useful Links

v1.1.3

08 Oct 15:58

Choose a tag to compare

Release v1.1.3

πŸš€ What's New

Silent OAuth Auto-Login

  • Automatic silent authentication when OAuth session exists
  • Reduces login prompts for better user experience
  • New environment variable ACKIFY_OAUTH_AUTO_LOGIN (default: false)
  • New endpoint /api/auth/check for session verification
  • 5-minute cooldown between silent login attempts

SMTP Email Service

  • Complete email notification system with SMTP support
  • Support for Gmail, Office365, and custom SMTP servers
  • HTML and plain text email templates with internationalization (French/English)
  • Gracefully disabled if not configured (no errors)
  • New environment variables: ACKIFY_MAIL_HOST, ACKIFY_MAIL_PORT, ACKIFY_MAIL_USERNAME, ACKIFY_MAIL_PASSWORD, ACKIFY_MAIL_FROM, ACKIFY_MAIL_FROM_NAME

Expected Signers Management

  • Track who should read each document with dedicated admin interface
  • Real-time signature statistics showing signed vs pending readers
  • Support for display names using format "Name [email protected]"
  • Flexible email input: newlines, commas, or semicolons
  • Detect unexpected signatures (users who signed but weren't expected)
  • Bulk or individual management

Email Reminder System

  • Send bulk or selective email reminders to pending readers
  • Automatic language selection (French/English) based on user's interface language
  • Reminder history tracking with complete audit trail
  • Document URL automatically fetched from metadata
  • Personalized emails with recipient names when available
  • REST endpoints: POST /admin/docs/{docID}/reminders/send, GET /admin/docs/{docID}/reminders/history

Admin Dashboard Enhancements

  • New dedicated document details page at /admin/docs/{docID}
  • Complete expected signers management interface
  • Document signature link with one-click copy functionality
  • Improved navigation menu for authenticated users
  • Shows all documents including those with only metadata
  • Cleaner interface with removed redundant status indicators

Document Metadata Management

  • Store comprehensive document information: title, URL/path, checksum, description
  • Support for SHA-256, SHA-512, and MD5 checksum algorithms
  • One-click copy for checksums and clickable document URLs
  • Automatic timestamp tracking with PostgreSQL triggers
  • Document URL automatically included in email reminders
  • REST API: GET /admin/docs/{docID}/metadata, POST /admin/docs/{docID}/metadata, DELETE /admin/docs/{docID}/metadata

Modern UI/UX Improvements

  • Replaced native JavaScript alert() and confirm() with styled modal dialogs
  • Consistent design with warning (orange) and delete (red) visual indicators
  • Modern SVG favicon with brand identity
  • Responsive grid layouts for admin dashboard cards

πŸ”§ Database Changes

  • Migration 0002: expected_signers table for tracking who should read documents
  • Migration 0003: reminder_logs table for email reminder audit trail
  • Migration 0004: Added name field to expected_signers for display names
  • Migration 0005: documents table for metadata management

πŸ› Bug Fixes

  • Fixed template syntax error with not operator requiring parentheses
  • Fixed hardcoded French language in email reminders

πŸ”§ Technical Changes

  • New domain models: ExpectedSigner, ReminderLog, Document, DocumentInput
  • New repositories: ExpectedSignerRepository, ReminderRepository, DocumentRepository
  • New service: ReminderService for email reminder logic
  • New email infrastructure: Sender, Renderer, template helpers
  • New handlers: ExpectedSignersHandlers, DocumentHandlers
  • Updated AdminRepository.ListDocumentsWithCounts() to include documents table
  • Updated ReminderService.SendReminders() with locale parameter
  • Comprehensive integration tests for all new repositories
  • New admin routes for expected signers, reminders, and metadata
  • Email templates with i18n support (FR/EN) in both HTML and plain text