Changelog¶
All notable changes to Trunk8 will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.6.0] - 2025-01-21¶
Added¶
- Raw HTML Hosting: New link type for hosting custom HTML pages with full CSS, JavaScript, and interactive element support
- Upload
.html
or.htm
files directly or paste HTML content using built-in editor - Auto-detection: HTML files uploaded to markdown section are automatically converted to HTML links
- Complete HTML document support with embedded CSS, JavaScript, and interactive elements
- Full feature parity with existing link types (expiration dates, user permissions, admin management)
- UUID4 filename generation for security with original filename preservation
- New
html_render.html
template for optimal HTML content display - Enhanced Form Handling: Updated add/edit forms with HTML-specific input options and validation
- Comprehensive Test Suite: 346+ new lines of tests covering all HTML functionality including edge cases
- Tests for JavaScript, CSS, special characters, and Unicode content
- Integration testing for full lifecycle from creation to deletion
- Complete Link model support for HTML link types
- Documentation Expansion: Complete coverage of HTML link functionality
- Updated API documentation with HTML link endpoints
- User guide expansion with detailed examples and best practices
- Ready-to-use HTML templates and code snippets
Changed¶
- Expanded Link Type Support: Added HTML to existing file, redirect, and markdown link types
- Enhanced Link Management: HTML links display with proper metadata and type indicators
- Improved Edit Experience: Seamless switching between file and text input methods for HTML links
- Form UI/UX: Cleaner form layouts with better error messaging and real-time validation
Security¶
- File Security: HTML files stored with secure UUID4 filenames preventing enumeration attacks
- Access Control: HTML links maintain user-level permissions and admin oversight
- File Cleanup: Automatic deletion of HTML files when links are removed
- Metadata Preservation: Original filenames and upload information safely stored
Technical¶
- No Breaking Changes: All existing links, files, and configurations remain unchanged
- Backward Compatibility: All previous functionality preserved
- Performance: No impact on existing link types or system performance
- Backup Compatibility: HTML links fully supported in backup/restore operations
[0.5.0] - 2025-06-23¶
Added¶
- Configurable File Upload Size Limits: New
max_file_size_mb
configuration option inconfig/config.toml
to set maximum file upload sizes (defaults to 100MB) - Enhanced File Upload Security: Implemented UUID4 naming for uploaded files to prevent enumeration attacks while preserving original filenames in metadata
- Comprehensive File Metadata Tracking: Added tracking for file size, MIME type, upload date, and other metadata for better file management
- Per-User Theme Configuration: Users can now set individual theme preferences that override admin defaults through user-specific config files
- Port Configuration: Added
TRUNK8_PORT
environment variable to customize Flask development server port (defaults to 5001) - Bootstrap Icons Integration: Replaced emoji icons with Bootstrap icons for a more consistent and modern UI
- Backup and Restore Functionality: Complete backup and restore system for user data, configurations, and links
- Enhanced Documentation Structure: Comprehensive API documentation, improved navigation, and better cross-referencing
Changed¶
- File Upload Handling: Enhanced validation for allowed file types and sizes with improved error messages
- UI/UX Improvements: Updated templates with Bootstrap icons and improved visual consistency
- Documentation Organization: Restructured documentation with better navigation and enhanced GitHub Pages setup
- Configuration Management: Improved theme hierarchy allowing user-specific overrides of admin settings
- Security Enhancements: Better file handling security and metadata preservation
Fixed¶
- Documentation Accuracy: Synchronized all documentation with actual codebase implementation
- Navigation Structure: Fixed missing navigation items and improved accessibility
- File Handling: Enhanced error handling for file uploads and size limit validation
- Configuration Loading: Improved robustness of configuration file handling
Removed¶
- Legacy Data Migration: Removed outdated legacy support code and related migration functionality
- Deprecated Features: Cleaned up unused code and improved codebase maintainability
[0.4.0] - 2025-06-22¶
Added¶
- Enhanced Documentation Structure: Added comprehensive user configuration documentation
- Improved Navigation: Added user-config.md to documentation navigation for better accessibility
- Documentation Review and Accuracy Updates: Synchronized documentation with actual codebase implementation
Changed¶
- Documentation Organization: Improved cross-referencing and navigation structure
- Version Synchronization: Updated changelog to reflect current version status
Fixed¶
- Missing Navigation Items: Added previously orphaned documentation files to navigation
- Version Consistency: Aligned changelog with pyproject.toml version information
[0.3.0] - 2025-06-21¶
Added¶
- Cascading User Deletion: When a user is deleted, all of their links, assets, and files are now automatically cleaned up
- Complete removal of user directory structure
- Deletion of all user links (redirect, file, and markdown types)
- Cleanup of all uploaded files and assets
- Detailed logging of cleanup statistics
- Preview functionality to see what will be deleted before confirming
- Robust error handling for permission issues and corrupted data
- Enhanced Route Protection: Link creation now validates against all built-in routes to prevent conflicts
- Protection for main routes (
/settings
,/users
,/profile
) - Protection for link management routes (
/add
,/links
,/edit_link
,/delete_link
) - Protection for authentication routes (
/auth/*
,/login
,/logout
,/register
) - Protection for system routes and common files (
/static
,/api
,favicon.ico
,robots.txt
) - Clear error messages when attempting to use reserved short codes
- Optional dependency groups in
pyproject.toml
for better dependency management - Separate dependency groups for testing (
test
), documentation (docs
), and development (dev
)
Changed¶
- BREAKING: Refactored dependency structure in
pyproject.toml
- Moved pytest dependencies to optional
test
group - Moved mkdocs dependencies to optional
docs
group - Created convenience
dev
group that includes both test and docs dependencies - Runtime dependencies now only include core Flask application requirements
- Updated all documentation to reflect new dependency installation methods
- Installation commands now support
uv sync --extra dev
andpip install .[dev]
for development - Improved error handling for configuration loading
- Enhanced security documentation
- Migrated to blueprint-based architecture
- Improved file upload security
- Enhanced UI with Bootstrap themes
Fixed¶
- Link expiration check on every request
- File cleanup for expired links
- File naming collisions
- Configuration file creation on first run
[0.2.0] - 2025-06-20¶
Added¶
- Comprehensive documentation using MkDocs
- Unit tests for core functionality
- Docker deployment with uv package manager
Changed¶
- Migrated to blueprint-based architecture
- Improved file upload security
- Enhanced UI with Bootstrap themes
Fixed¶
- File naming collisions
- Configuration file creation on first run
[0.1.0] - 2025-06-15¶
Added¶
- Initial release
- Basic link shortening functionality
- File upload support
- TOML-based configuration
- Password protection for admin functions
- Link expiration functionality
- Theme customization via web interface
- Markdown rendering with StrapDown.js
- Session-based authentication
- Automatic configuration reloading