Files
hmac-file-server/CHANGELOG.MD

6.1 KiB

Changelog

Note: This file is a technical changelog for developers and maintainers. For user-focused highlights, migration notes, and upgrade instructions, see README.MD.

All notable changes to this project will be documented in this file.

[3.2] - Stable Release

Added (3.2)

  • Enhanced Documentation: Comprehensive update of all documentation files to match current codebase
  • Protocol Specification Updates: Detailed protocol documentation with implementation examples
  • Configuration Validation: Improved configuration structure validation and error reporting
  • Developer Resources: Updated build instructions and development setup guides

Changed (3.2)

  • Documentation Structure: Reorganized documentation for better clarity and maintenance
  • Configuration Examples: Updated all configuration examples to reflect current options
  • API Documentation: Enhanced API endpoint documentation with comprehensive examples

Completed (3.2)

  • Feature Development: Active development of new features and improvements
  • Testing Enhancements: Expanded test coverage and validation
  • Performance Optimizations: Ongoing performance improvements and monitoring

[3.1-Stable] - 2025-06-08

Added (3.1)

  • v3 (mod_http_upload_external) Support: Implemented secure file uploads using HMAC-SHA256 validation and expiration checks, specifically designed for Prosody's mod_http_upload_external compatibility.
  • JWT Authentication: Complete JWT token authentication system with configurable algorithms and expiration times.
  • Multiple Authentication Protocols: Support for legacy v1, enhanced v2, token-based, and v3 HMAC protocols alongside JWT authentication.
  • File Naming Strategy: Configurable file naming options including HMAC-based, original filename preservation, or no specific naming convention.
  • Advanced Configuration Structure: Comprehensive configuration sections including server, security, uploads, downloads, logging, deduplication, ISO, timeouts, versioning, ClamAV, Redis, and workers.

Changed (3.1)

  • Enhanced HMAC Validation: Improved validation logic to support multiple protocol versions (v1, v2, token, v3) with proper fallback mechanisms.
  • Authentication Priority: Implemented authentication priority system with JWT taking precedence when enabled, falling back to HMAC protocols.
  • Network Protocol Support: Enhanced IPv4/IPv6 dual-stack support with protocol forcing options (ipv4, ipv6, auto).
  • Configuration Hot-Reloading: Added support for reloading logging configuration via SIGHUP signal without full server restart.

Fixed (3.1)

  • Protocol Compatibility: Addressed compatibility issues with different HMAC protocol versions and mod_http_upload_external clients.
  • Error Handling: Improved error handling for invalid or expired signatures during file uploads.
  • Configuration Validation: Enhanced configuration validation to prevent common misconfigurations.

[3.0-Stable] - 2025-06-07

Added (3.0)

  • Official Docker Compose support and example (dockerenv/docker-compose.yml).
  • Multi-stage Dockerfile for minimal images (dockerenv/dockerbuild/Dockerfile).
  • Extended documentation for Docker, Compose, and deployment paths.
  • Quickstart and configuration examples for containerized environments.
  • Monitoring and Prometheus metrics documentation improvements.
  • Seamless IPv4 and IPv6 support: The server now automatically supports both IPv4 and IPv6 connections out of the box, with improved dual-stack handling and configuration via forceprotocol.

Changed (3.0)

  • Minimum Go version is now 1.24 (was 1.20).
  • Updated all documentation and config examples to reflect new version and Docker usage.
  • Improved configuration normalization and environment variable overrides for containers.
  • Enhanced worker pool and resource auto-scaling logic.

Fixed (3.0)

  • Minor bugfixes for config parsing and Docker path handling.
  • Improved error messages for missing or invalid configuration in container environments.

[2.8-Stable] - 2026-05-01

Added (2.8)

  • Version check history for improved tracking.
  • Enhanced ClamAV scanning with concurrent workers.

Changed (2.8)

  • Improved ISO-based storage for specialized use cases.
  • Auto-scaling workers for optimized performance.

Fixed (2.8)

  • Minor issues in worker thread adjustments under high load.

[2.7] - 2026-02-10

Added (2.7)

  • Concurrency improvements and auto-scaling worker enhancements
  • Cleanup and removal of unused parameters in sorting functions

Changed (2.7)

  • Additional logging for file scanning operations

Fixed (2.7)

  • Minor stability issues related to ISO container mounting
  • Fixed dual stack for upload (IPv4/IPv6)

[2.6-Stable] - 2025-12-01

Added (2.6)

  • Deduplication support (removes duplicate files).
  • ISO Container management.
  • Dynamic worker scaling based on CPU & memory.
  • PreCaching feature for faster file access.

Changed (2.6)

  • Worker pool scaling strategies for better performance.
  • Enhanced logging with rotating logs using lumberjack.

Fixed (2.6)

  • Temporary file handling issues causing "Unsupported file type" warnings.
  • MIME type checks for file extension mismatches.

[2.5] - 2025-09-15

Added (2.5)

  • Redis caching integration for file metadata.
  • ClamAV scanning for virus detection before finalizing uploads.

Changed (2.5)

  • Extended the default chunk size for chunked uploads.
  • Updated official documentation links.

Fixed (2.5)

  • Edge case with versioning causing file rename conflicts.

[2.0] - 2025-06-01

Added (2.0)

  • Chunked file uploads and downloads.
  • Resumable upload support with partial file retention.

Changed (2.0)

  • Moved configuration management to Viper.
  • Default Prometheus metrics for tracking memory & CPU usage.

Fixed (2.0)

  • Race conditions in file locking under heavy concurrency.

[1.0] - 2025-01-01

Added (1.0)

  • Initial release with HMAC-based authentication.
  • Basic file upload/download endpoints.
  • Logging and fundamental configuration using .toml files.