CHANGELOG.md
Rama main · réplica de lectura del repositorio original.
# Changelog
All notable changes to Way-CMS will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.0.23] - 2026-10-21
### Security
- The image no longer trusts certificates issued through the eight eMudhra (emSign) intermediates revoked on 2026-10-18 for a key compromise: it upgrades Debian's ca-certificates to 20250419+deb13u1, which distrusts them.
## [2.0.0] - 2025-12-14
### 🎉 Major Release: Multi-Tenant Support
This is a major release that transforms Way-CMS from a single-tenant application into a fully-featured multi-tenant CMS platform.
### Added
#### Multi-Tenant Architecture
- **SQLite Database**: New database system for managing users, projects, and assignments
- **User Management**: Complete user CRUD operations with email-based authentication
- **Project Management**: Create and manage multiple website projects from a single instance
- **User-Project Assignments**: Many-to-many relationship allowing users to access multiple projects
- **Role-Based Access Control**: Admin users with full access, regular users with project-specific access
#### Authentication System
- **Magic Link Authentication**: Passwordless login via email links
- **Password Authentication**: Optional password-based login (users can set passwords after first login)
- **Session Management**: Enhanced session handling with configurable timeouts
- **Email Integration**: SMTP support for sending magic links and welcome emails
#### Admin Panel
- **Admin Dashboard**: New admin panel accessible via 👑 Admin button (admin users only)
- **Users Tab**: Create, edit, delete users; send magic links; manage user roles
- **Projects Tab**: Create, edit, delete projects; manage project folders and URLs
- **Assignments Tab**: Assign users to projects; manage user-project relationships
- **Settings Tab**: Email configuration testing, system statistics
#### UI Enhancements
- **Project Selector**: Dropdown in breadcrumb area for switching between projects
- **Admin Button**: Visible only to admin users in the header
- **Enhanced Login Page**: Magic link request button, password login option
- **Welcome Emails**: Beautiful HTML email templates for new user onboarding
#### Migration System
- **Automatic Migration**: Existing single-tenant installations automatically migrate to first project
- **Backward Compatibility**: Single-tenant mode still supported via `MULTI_TENANT=false`
### Changed
- **File Operations**: All file operations are now project-aware in multi-tenant mode
- **Backup System**: Backups are organized by project in multi-tenant mode
- **Directory Structure**: New `PROJECTS_BASE_DIR` for storing all project folders
- **Database Location**: SQLite database stored in `DATA_DIR` (default: `/.way-cms-data`)
### Environment Variables
#### New Multi-Tenant Variables
- `MULTI_TENANT`: Enable multi-tenant mode (default: `false`)
- `ADMIN_EMAIL`: Initial admin email (required for first run)
- `ADMIN_PASSWORD`: Initial admin password (required for first run)
- `PROJECTS_BASE_DIR`: Container path for all projects (default: `/var/www/projects`)
- `DATA_DIR`: Container path for SQLite database (default: `/.way-cms-data`)
- `APP_URL`: Public URL for magic link emails
- `SMTP_HOST`, `SMTP_PORT`, `SMTP_USER`, `SMTP_PASSWORD`: SMTP configuration
- `SMTP_FROM`, `SMTP_FROM_NAME`: Email sender information
- `MAGIC_LINK_EXPIRY_HOURS`: Magic link expiration time (default: 24)
### Technical Details
- **Database**: SQLite with foreign key constraints
- **Models**: User, Project, UserProject, MagicLink with full CRUD operations
- **Authentication**: bcrypt password hashing, secure token generation
- **Email**: SMTP with HTML email templates
- **API Routes**: New `/auth/*` and `/admin/*` endpoints
- **Security**: Admin routes protected with `@admin_required` decorator
- **Project Access**: All file operations check user permissions
### Migration Guide
To upgrade from 1.x to 2.0.0:
1. **Backup your data** before upgrading
2. **Set environment variables** for multi-tenant mode (see README)
3. **Start the application** - existing website will be auto-migrated as first project
4. **Log in** with `ADMIN_EMAIL` and `ADMIN_PASSWORD`
5. **Access admin panel** to create additional users and projects
For single-tenant mode, set `MULTI_TENANT=false` - everything works as before.
### Breaking Changes
- **None**: Single-tenant mode remains fully backward compatible
- Multi-tenant mode requires new environment variables (see above)
### Documentation
- Updated README.md with comprehensive multi-tenant documentation
- Added multi-tenant setup instructions
- Updated docker-compose.yml with new environment variables
---
## [1.2.14] - Previous Release
### Features
- Web-based file editor with syntax highlighting
- Live preview with asset loading
- File browser and management
- Search & replace functionality
- Automatic backup system
- Theme toggle
- Keyboard shortcuts
- Password protection
- Docker support