From a168723db97858524d7b2c7bd82608f60c981a4d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 06:35:02 +0000 Subject: [PATCH] Bump version to 0.5.0 for settings management release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Settings management represents a significant new feature warranting a minor version bump: - Database-backed configuration with 102 settings - Fernet encryption for sensitive values - Setup wizard for first-time installations - Complete admin UI and REST API - OAuth admin group support Version updated: 0.3.3 → 0.5.0 Keep 0.3.3 release notes intact (drag-and-drop feature from main branch). Add 0.5.0 as new current release with settings features. Updated files: - VERSION: 0.5.0 - CHANGELOG.md: Added 0.5.0 release, kept 0.3.3 intact - MILESTONES.md: Added v0.5.0 section, adjusted future versions - TODO.md: Updated current version - ROADMAP.md: Updated current status - app/config.py: Default version 0.5.0-dev - docs/BuildMetadata.md: Updated reference - ANALYSIS_SUMMARY.md: Updated version Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com> --- ANALYSIS_SUMMARY.md | 2 +- CHANGELOG.md | 88 ++++++++++++++++++++++++++++++++++++++++++- MILESTONES.md | 83 ++++++++++++++++++++++++++++++++++++---- ROADMAP.md | 2 +- TODO.md | 2 +- VERSION | 2 +- app/config.py | 2 +- docs/BuildMetadata.md | 2 +- 8 files changed, 169 insertions(+), 14 deletions(-) diff --git a/ANALYSIS_SUMMARY.md b/ANALYSIS_SUMMARY.md index c65a0332..2ab0530e 100644 --- a/ANALYSIS_SUMMARY.md +++ b/ANALYSIS_SUMMARY.md @@ -2,7 +2,7 @@ **Date:** 2026-02-06 **Repository:** christianlouis/DocuElevate -**Current Version:** v0.3.3 +**Current Version:** v0.5.0 ## Executive Summary diff --git a/CHANGELOG.md b/CHANGELOG.md index 66c52a25..c6968e2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,91 @@ All notable changes to DocuElevate 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). +# Changelog + +All notable changes to DocuElevate 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). + +## [0.5.0] - 2026-02-08 + +### Added +- **Settings Management System**: Database-backed configuration management with web UI + - Admin-only settings page at `/settings` with 102 settings across 10 categories + - REST API endpoints: `GET/POST /api/settings/{key}`, `POST /api/settings/bulk-update`, `DELETE /api/settings/{key}` + - Settings organized by category: Core, Authentication, AI Services, Storage Providers, Email, IMAP, Monitoring, Processing, Notifications, Feature Flags + - Form pre-filled with current values, all fields optional for flexible editing + - Bulk update support for changing multiple settings at once + +- **Encryption for Sensitive Settings**: Fernet symmetric encryption for database storage + - Automatic encryption/decryption for passwords, API keys, tokens, and secrets + - Encryption key derived from `SESSION_SECRET` via SHA256 + - Values prefixed with `enc:` in database to identify encrypted data + - Graceful fallback if cryptography library unavailable (logs warning) + - Lock icon (🔒) in UI indicates encrypted fields + +- **Setup Wizard**: First-time configuration wizard for fresh installations + - 3-step wizard: Infrastructure → Security → AI Services + - Auto-detects missing critical settings and redirects from homepage + - Beautiful UI with progress indicators and step navigation + - Auto-generate option for session secrets + - Skippable for advanced users + - Settings saved encrypted to database + +- **Settings Precedence System**: Clear resolution order with visual indicators + - Precedence: Database > Environment Variables > Defaults + - Color-coded badges in UI: 🟢 DB (green), 🔵 ENV (blue), ⚪ DEFAULT (gray) + - Source detection for each setting shows where value originates + - Info section explaining precedence order + +- **OAuth Admin Support**: Enhanced authentication for settings access + - Admin flag set from OAuth group membership (`admin` or `administrators`) + - Proper decorator pattern for admin access control + - Session-based authorization with redirect on unauthorized access + +### Changed +- Updated `requirements.txt` to include `cryptography>=41.0.0` for encryption +- Enhanced settings service to auto-encrypt/decrypt sensitive values transparently +- Improved `/settings` route with proper admin decorator (fixes redirect loop) +- Updated settings template with enhanced UI: source badges, encryption indicators, show/hide toggles +- Modified `app/views/general.py` to redirect to wizard when setup required + +### Fixed +- Fixed `/settings` endpoint returning 301 redirect to `/` (converted to proper decorator) +- Resolved redirect loop for logged-in non-admin users +- Fixed OAuth users not receiving admin privileges from group membership + +### Documentation +- Added [docs/SettingsManagement.md](docs/SettingsManagement.md) - Comprehensive user guide +- Added [SETTINGS_IMPLEMENTATION.md](SETTINGS_IMPLEMENTATION.md) - Technical documentation +- Added [FRAMEWORK_ANALYSIS.md](FRAMEWORK_ANALYSIS.md) - Research on existing frameworks +- Added [IMPLEMENTATION_CHECKLIST.md](IMPLEMENTATION_CHECKLIST.md) - Feature tracking +- Updated TODO.md with completed features +- Updated MILESTONES.md with release details + +### Technical Details +- New files: + - `app/utils/encryption.py` - Fernet encryption utilities + - `app/utils/setup_wizard.py` - Wizard detection and logic + - `app/views/wizard.py` - Wizard routes (GET/POST /setup) + - `frontend/templates/setup_wizard.html` - Wizard UI + - `frontend/templates/settings.html` - Enhanced settings page + +- Modified files: + - `app/utils/settings_service.py` - Encryption integration, 102 setting metadata + - `app/views/settings.py` - Fixed decorator, source detection + - `app/auth.py` - OAuth admin support + - `app/api/settings.py` - Enhanced admin checks + - `tests/test_settings.py` - Comprehensive test coverage + +### Security +- Sensitive settings encrypted at rest in database using Fernet (AES-128-CBC + HMAC) +- Encryption key derived from `SESSION_SECRET` (minimum 32 characters required) +- Admin-only access enforced on all settings operations +- Visual masking of sensitive values in UI by default +- CodeQL security scan: 0 alerts + ## [0.3.3] - 2026-02-08 ### Added @@ -147,7 +232,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Version History Summary -- **v0.3.3** (2026-02-08): Settings management, encryption, setup wizard +- **v0.5.0** (2026-02-08): Settings management, encryption, setup wizard +- **v0.3.3** (2026-02-08): Drag-and-drop upload - **v0.3.2** (2026-02-06): Security hardening, testing infrastructure - **v0.3.1** (2026-01-15): OAuth2 authentication - **v0.3.0** (2026-01-01): Multi-provider storage, OCR, metadata extraction diff --git a/MILESTONES.md b/MILESTONES.md index 5e0d57f4..c636a400 100644 --- a/MILESTONES.md +++ b/MILESTONES.md @@ -19,7 +19,7 @@ DocuElevate follows [Semantic Versioning 2.0.0](https://semver.org/): --- -## Current Release: v0.3.3 (February 2026) +## Current Release: v0.5.0 (February 2026) ### Status: Stable - Production-ready document processing @@ -34,6 +34,10 @@ DocuElevate follows [Semantic Versioning 2.0.0](https://semver.org/): ## Previous Releases +### v0.3.3 (February 2026) +- Drag-and-drop file upload on Files page +- Enhanced upload UI and functionality + ### v0.3.2 (February 2026) - Production-ready document processing - Multi-provider storage support @@ -44,7 +48,71 @@ DocuElevate follows [Semantic Versioning 2.0.0](https://semver.org/): ## Upcoming Milestones -### v0.3.3 - Security & Testing Hardening (February 2026) +### v0.5.0 - Settings Management & Configuration (February 2026) +**Target Date:** February 15, 2026 +**Release Date:** February 8, 2026 +**Status:** ✅ Released +**Theme:** Configuration Management, Security, User Experience + +#### Goals +- [x] **Implement database-backed settings management** +- [x] **Add encryption for sensitive configuration** +- [x] **Create setup wizard for first-time installation** +- [x] Complete settings UI with admin access +- [x] Integrate with existing authentication system + +#### Deliverables +- [x] **Settings management UI at /settings** +- [x] **Setup wizard at /setup** +- [x] **Fernet encryption for sensitive settings** +- [x] **Source indicators (DB/ENV/DEFAULT)** +- [x] **Complete settings documentation** +- [x] **Framework analysis (FRAMEWORK_ANALYSIS.md)** +- [x] REST API for settings management +- [x] Admin authentication and authorization +- [x] Comprehensive test coverage + +#### New Features +- **Settings Management System**: Web-based admin UI for viewing and editing 102 application settings across 10 categories +- **Encryption**: Fernet symmetric encryption for sensitive values (passwords, API keys, tokens) with key derived from SESSION_SECRET +- **Setup Wizard**: 3-step wizard for first-time configuration (Infrastructure → Security → AI Services) +- **Precedence System**: Settings resolved in order: Database > Environment Variables > Defaults +- **Source Indicators**: Visual badges showing where each setting value originates (🟢 DB, 🔵 ENV, ⚪ DEFAULT) +- **Admin Access Control**: OAuth admin group support and proper decorator pattern for authorization + +#### Technical Improvements +- Fixed /settings redirect loop issue +- Added cryptography>=41.0.0 dependency +- Created encryption utilities (app/utils/encryption.py) +- Implemented settings service with auto-encrypt/decrypt +- Built responsive wizard UI with progress indicators +- Comprehensive test coverage for settings functionality + +#### Breaking Changes +- None + +#### Migration Notes +- Setup wizard automatically appears for fresh installations +- Existing installations can skip wizard +- All settings remain backward compatible with environment variables +- Database settings override environment variables when present + +--- + +### v0.3.3 - Drag-and-Drop Upload (February 2026) +**Release Date:** February 8, 2026 +**Status:** ✅ Released +**Theme:** User Experience Enhancement + +#### Features +- Drag-and-drop file upload on Files page +- Visual drop overlay with animations +- Upload progress modal +- Shared upload JavaScript module + +--- + +### v0.3.2 - Security & Testing Hardening (February 2026) **Target Date:** February 15, 2026 **Release Date:** February 8, 2026 **Status:** ✅ Released @@ -105,7 +173,7 @@ DocuElevate follows [Semantic Versioning 2.0.0](https://semver.org/): --- -### v0.4.0 - Enhanced Search & UI Improvements (April 2026) +### v0.6.0 - Enhanced Search & UI Improvements (April 2026) **Target Date:** April 1, 2026 **Status:** 📋 Planned **Theme:** User Experience, Search, Performance @@ -162,7 +230,7 @@ DocuElevate follows [Semantic Versioning 2.0.0](https://semver.org/): --- -### v0.5.0 - Advanced AI & Multi-language (August 2026) +### v0.7.0 - Advanced AI & Multi-language (August 2026) **Target Date:** August 1, 2026 **Status:** 📋 Planned **Theme:** AI Enhancement, Internationalization @@ -345,9 +413,10 @@ This is our first major release, marking production-ready enterprise capabilitie | v0.2.0 | 2024-Q3 | Multi-provider Support | Released | | v0.3.0 | 2025-Q4 | UI & Authentication | Released | | v0.3.2 | 2026-02-06 | Security Updates | Released | -| v0.3.3 | 2026-02-08 | **Current Stable** - Configuration Management | **Released** | -| v0.4.0 | 2026-04 | Search & UX | Planned | -| v0.5.0 | 2026-08 | Advanced AI | Planned | +| v0.3.3 | 2026-02-08 | Drag-and-Drop Upload | Released | +| v0.5.0 | 2026-02-08 | **Current Stable** - Settings Management | **Released** | +| v0.6.0 | 2026-04 | Search & UX | Planned | +| v0.7.0 | 2026-08 | Advanced AI | Planned | | v1.0.0 | 2026-11 | Enterprise | Planned | | v2.0.0 | 2027-Q3 | Platform Expansion | Future | diff --git a/ROADMAP.md b/ROADMAP.md index cabfb7ca..e121b8ce 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -7,7 +7,7 @@ DocuElevate aims to be the premier open-source intelligent document processing platform, providing seamless integration with cloud storage providers, advanced AI-powered metadata extraction, and enterprise-grade security and scalability. -## Current Status (v0.3.3) +## Current Status (v0.5.0) ### Core Features ✅ - Multi-provider document storage (Dropbox, Google Drive, OneDrive, Nextcloud, S3, etc.) diff --git a/TODO.md b/TODO.md index 528875f9..665ad0ae 100644 --- a/TODO.md +++ b/TODO.md @@ -1,7 +1,7 @@ # DocuElevate TODO List **Last Updated:** 2026-02-08 -**Current Version:** v0.3.3 +**Current Version:** v0.5.0 This document tracks actionable tasks for the current development cycle. For long-term planning, see [ROADMAP.md](ROADMAP.md) and [MILESTONES.md](MILESTONES.md). diff --git a/VERSION b/VERSION index 1c09c74e..8f0916f7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.3 +0.5.0 diff --git a/app/config.py b/app/config.py index 2e11a82d..2c0d9d6c 100644 --- a/app/config.py +++ b/app/config.py @@ -217,7 +217,7 @@ class Settings(BaseSettings): return f.read().strip() # Default version if not found - return "0.3.3-dev" + return "0.5.0-dev" @property def git_sha(self) -> str: diff --git a/docs/BuildMetadata.md b/docs/BuildMetadata.md index 62f2aa72..e6146e8c 100644 --- a/docs/BuildMetadata.md +++ b/docs/BuildMetadata.md @@ -73,7 +73,7 @@ The `app/config.py` Settings class provides these properties for accessing build Returns the application version with the following priority: 1. `APP_VERSION` environment variable 2. Contents of `VERSION` file -3. Default: `"0.3.3-dev"` +3. Default: `"0.5.0-dev"` ### `settings.build_date` (property) Returns the build date with the following priority: