Automatically generated by python-semantic-release
102 KiB
Changelog
All notable changes to DocuElevate will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This CHANGELOG is automatically generated and maintained by python-semantic-release. Do not edit it manually. New entries are prepended automatically on every merge to
mainthat triggers a version bump.
v0.120.0 (2026-03-12)
Bug Fixes
-
Remove accidental pip artifact file and update docs for iCloud Drive (
ca84a11) -
Remove accidental pip artifact file and update docs for iCloud Drive (
528f0a6) -
tests: Add iCloud mocks to all test files and address code review feedback (
50af0ea)
Features
-
storage: Add Apple iCloud Drive storage provider (
82d67c5) -
storage: Add Apple iCloud Drive storage provider (
30f06e0)
Testing
-
tasks: Add _should_upload_to_icloud mock to send_to_all tests (
6e50c61) -
tasks: Add _should_upload_to_icloud mock to send_to_all tests (
9bc23aa)
v0.119.0 (2026-03-12)
v0.118.0 (2026-03-11)
Features
- api: Add GraphQL endpoint at /graphql with Strawberry
(
a41ded5)
v0.117.1 (2026-03-11)
Bug Fixes
- Resolve all 47 failing tests in main
(
df4c91a)
v0.117.0 (2026-03-11)
Continuous Integration
- Opt into Node.js 24 for all GitHub Actions workflows
(
c306d80)
Documentation
-
changelog: Update changelog [skip ci] (
ab19ae5) -
changelog: Update changelog [skip ci] (
c5b67fe) -
changelog: Update changelog [skip ci] (
eb22a58)
Unreleased
Continuous Integration
- Opt into Node.js 24 for all GitHub Actions workflows
(
c306d80)
Documentation
Unreleased
Continuous Integration
- Opt into Node.js 24 for all GitHub Actions workflows
(
c306d80)
Documentation
- changelog: Update changelog [skip ci]
(
eb22a58)
Unreleased
Continuous Integration
- Opt into Node.js 24 for all GitHub Actions workflows
(
c306d80)
v0.116.0 (2026-03-11)
Documentation
- changelog: Update changelog [skip ci]
(
d6fb787)
Testing
-
views: Add comprehensive coverage tests for 11 view modules (
c8987d9) -
views: Boost coverage for 11 view modules toward 100% (
6fb1df1)
Unreleased
Testing
-
views: Add comprehensive coverage tests for 11 view modules (
c8987d9) -
views: Boost coverage for 11 view modules toward 100% (
6fb1df1)
v0.115.0 (2026-03-10)
v0.114.1 (2026-03-10)
Bug Fixes
- db: Add migration to create shared_links table for databases that skipped 025
(
289dcc3)
v0.114.0 (2026-03-09)
Bug Fixes
-
100% coverage, WCAG accessibility fixes, and documentation updates for per-user OAuth wizards (
0529ae5) -
templates: Remove orphan in google_drive.html causing HTML accessibility lint failure (
256d9cb)
Features
- integrations: Add per-user OAuth wizard with user-mode for Dropbox, OneDrive, Google Drive
(
c71f33a)
Testing
- views: Add user-mode coverage tests and fix dashboard helper duplication
(
2d01e71)
v0.113.0 (2026-03-09)
Bug Fixes
- Code standards audit — 100% coverage, Pydantic v2 model_config, asyncio.run(), targeted edge-case
tests
(
ec77c51)
Features
-
tasks: Add 5 additional scheduled jobs (expire_shared_links, prune_processing_logs, prune_old_notifications, backfill_missing_metadata, sync_search_index) (
5bc1fac) -
tasks: Add scheduled batch processing infrastructure (model, migration, tasks, API, view, template) (
c2d56d7)
v0.112.0 (2026-03-09)
Bug Fixes
-
Address code review feedback - fix type hint and rename test (
4acad71) -
imap: Normalize CRLF line endings to LF in imap_tasks.py (
9a342af)
Documentation
- integrations: Update UserGuide and ConfigurationGuide for new IMAP and Watch Folder features
(
8c62a6b)
Features
- integrations: Add IMAP Gmail labels/delete and Watch Folder cloud source support
(
e7d1289)
Testing
-
Add tests for gmail_apply_labels=False and cloud source type dispatching (
79fc11b) -
integrations: Add tests for gmail_apply_labels and cloud watch folder dispatch (
8c62a6b) -
tasks: Add comprehensive tests for per-user cloud scan functions and gmail_apply_labels (
1741ab1)
v0.111.1 (2026-03-09)
Bug Fixes
- migrations: Resolve duplicate Alembic heads causing test failures
(
c374ba3)
v0.111.0 (2026-03-09)
Bug Fixes
-
tasks: Address code review - SMTP TLS cert validation, rclone input validation, consolidated test fixture (
01a9511) -
tasks: Register upload_to_user_integration in celery_worker and add handler tests (
5fb11b9)
Features
- tasks: Dynamic routing to user-specific destination integrations
(
89bf07d)
v0.110.1 (2026-03-08)
Bug Fixes
- sentry: Initialize Sentry after DB settings are loaded in lifespan
(
5864a4e)
Code Style
- Apply ruff auto-fix
(
b22f9a6)
v0.110.0 (2026-03-08)
Code Style
- Apply ruff auto-fix
(
e5d4f8b)
v0.109.0 (2026-03-08)
Bug Fixes
- ocr: Address code review feedback on multi-language OCR
(
0b29199)
Features
- ocr: Add multi-language OCR support with per-pipeline language override
(
a2a4c6f)
v0.108.0 (2026-03-08)
Chores
- Remove accidentally committed =8.0.0 file
(
a92bf8e)
Features
- cli: Add docuelevate CLI tool for power users
(
a3fd74f)
v0.107.0 (2026-03-08)
Documentation
- Add per-user notification system documentation to ConfigurationGuide.md
(
ae07590)
Features
-
notifications: Add per-user notification system with inbox, email, and webhook targets (
fcefd09) -
notifications: Build per-user notification system (email, webhook, in-app) (
d48e368)
v0.106.0 (2026-03-08)
Features
- observability: Add Sentry error and performance monitoring integration
(
58af9e5)
v0.105.0 (2026-03-08)
Continuous Integration
- Restore javascript-typescript CodeQL config alongside javascript
(
1fe6f86)
Documentation
- changelog: Update changelog [skip ci]
(
289eb42)
Features
- ci: Integrate Codecov for test coverage analysis and reporting
(
6d533aa)
Unreleased
Continuous Integration
- Restore javascript-typescript CodeQL config alongside javascript
(
1fe6f86)
v0.104.0 (2026-03-08)
Bug Fixes
-
Correct token_prefix comment to match implementation (12 chars) (
2f95feb) -
security: Address CodeQL clear-text logging and weak hashing alerts (
a7eff2c)
Code Style
- Apply ruff auto-fix
(
fc9caf4)
Documentation
- Add API tokens and webhook ingestion documentation
(
a982959)
Features
- api: Add personal API tokens and enhance webhook integration UI
(
c3bb93c)
v0.103.0 (2026-03-08)
Bug Fixes
- ui: Correct OAuth setup page links in integrations dashboard
(
ba387b8)
Documentation
- config: Document per-user IMAP and watch folder integration polling
(
fc453be)
Features
-
auth: Make OAuth credentials user-specific via UserIntegration records (
cfc52fd) -
auth: Save OAuth credentials per-user to UserIntegration records (
73119e0) -
tasks: Refactor IMAP and watch folder polling to support multi-tenant user attribution (
019807d)
Testing
- tasks: Add comprehensive tests for multi-tenant polling functions
(
4f9f458)
v0.102.0 (2026-03-08)
Features
- support: Auto-fill Zammad chat and ticket widgets with user context
(
209e82f)
Testing
- support: Improve Zammad user context tests with meaningful assertions
(
8098856)
v0.101.0 (2026-03-08)
Features
-
ui: Add unified Sources & Destinations integrations dashboard (
2c652dc) -
ui: Replace Email Ingestion nav with unified Integrations link (
0edb941)
Refactoring
- ui: Address code review - optimize queries, extract helpers, improve error handling
(
e27bace)
v0.100.0 (2026-03-08)
Bug Fixes
-
Update docs endpoint test and add Zammad settings metadata (
351d6f3) -
security: Add SRI to jQuery CDN, escape chat ID, use server-side hostname (
883f123)
Features
- help: Restructure /help as user-facing Help Center with Zammad integration
(
af3eed4)
v0.99.0 (2026-03-08)
Bug Fixes
-
billing: Address code review - remove duplicate mode logic, accessibility improvements, robust test assertions (
002cdf3) -
billing: Cast plan.name to str to fix mypy typeddict-item error (
9627667)
Features
- billing: Expose Stripe price IDs in plan API, add Stripe Setup Wizard and sync endpoints
(
223539b)
v0.98.0 (2026-03-08)
Bug Fixes
- integrations: Sanitize error messages and add SSRF protection for WebDAV test
(
c4b4643)
Documentation
- api: Add integrations quota enforcement and test endpoint documentation
(
71350f2)
Features
- integrations: Add quota enforcement, connection test, and quota endpoint
(
35abdb0)
v0.97.0 (2026-03-08)
Features
- status: Restrict status page to admin-only and move to admin menu
(
feea051)
v0.96.0 (2026-03-08)
Bug Fixes
- ui: Move IMAP modals inside Alpine.js x-data scope so create/edit/delete buttons work
(
8aa8a93)
Features
- models: Add UserIntegration model, encrypt IMAP passwords, add integrations API
(
743627e)
v0.95.0 (2026-03-08)
Bug Fixes
-
auth: Cache request body in CSRF middleware to prevent login failures (
087f3c1) -
imap: Address code review feedback - named constants, error context in JS, security docs (
73727dc)
Features
- imap: Add per-user IMAP ingestion accounts with quota enforcement
(
43bcfe5)
v0.94.0 (2026-03-08)
Documentation
-
changelog: Update changelog [skip ci] (
e68bf13) -
changelog: Update changelog [skip ci] (
195febf) -
changelog: Update changelog [skip ci] (
cc6acc1)
Features
- auth: Add comprehensive debug logging for local login failures
(
c5b330c)
Testing
-
Increase backup_tasks.py coverage to 99.79% (
9a95d5c) -
Increase watch_folder_tasks coverage from 37% to 98% (
3ac5a97) -
backup: Add comprehensive unit tests for app/views/backup.py (
19b4ea4)
Unreleased
Documentation
Testing
-
Increase backup_tasks.py coverage to 99.79% (
9a95d5c) -
Increase watch_folder_tasks coverage from 37% to 98% (
3ac5a97) -
backup: Add comprehensive unit tests for app/views/backup.py (
19b4ea4)
Unreleased
Documentation
- changelog: Update changelog [skip ci]
(
cc6acc1)
Testing
-
Increase backup_tasks.py coverage to 99.79% (
9a95d5c) -
backup: Add comprehensive unit tests for app/views/backup.py (
19b4ea4)
Unreleased
Testing
- Increase backup_tasks.py coverage to 99.79%
(
9a95d5c)
v0.93.1 (2026-03-08)
Bug Fixes
- auth: Activate account on password reset and fix is_active check order
(
86f9f5f)
Documentation
-
changelog: Update changelog [skip ci] (
be0a092) -
changelog: Update changelog [skip ci] (
5a11f14) -
changelog: Update changelog [skip ci] (
53f7ab3) -
changelog: Update changelog [skip ci] (
754ea99) -
changelog: Update changelog [skip ci] (
8db0093) -
changelog: Update changelog [skip ci] (
2be09ef)
Testing
-
Increase app/api/google_drive.py coverage to 100% (
14c9432) -
Increase coverage for app/tasks/subscription_tasks.py to 100% (
a580527) -
Increase coverage for app/views/pipelines.py to 100% (
344d20e) -
Increase coverage for app/views/subscriptions.py to 100% (
e96ddc7) -
Increase url_upload.py test coverage to 100% (
afe4227) -
subscriptions: Add comprehensive API tests reaching 100% coverage (
cd19ac6)
Unreleased
Documentation
-
changelog: Update changelog [skip ci] (
5a11f14) -
changelog: Update changelog [skip ci] (
53f7ab3) -
changelog: Update changelog [skip ci] (
754ea99) -
changelog: Update changelog [skip ci] (
8db0093) -
changelog: Update changelog [skip ci] (
2be09ef)
Testing
-
Increase app/api/google_drive.py coverage to 100% (
14c9432) -
Increase coverage for app/tasks/subscription_tasks.py to 100% (
a580527) -
Increase coverage for app/views/pipelines.py to 100% (
344d20e) -
Increase coverage for app/views/subscriptions.py to 100% (
e96ddc7) -
Increase url_upload.py test coverage to 100% (
afe4227) -
subscriptions: Add comprehensive API tests reaching 100% coverage (
cd19ac6)
Unreleased
Documentation
-
changelog: Update changelog [skip ci] (
53f7ab3) -
changelog: Update changelog [skip ci] (
754ea99) -
changelog: Update changelog [skip ci] (
8db0093) -
changelog: Update changelog [skip ci] (
2be09ef)
Testing
-
Increase app/api/google_drive.py coverage to 100% (
14c9432) -
Increase coverage for app/views/pipelines.py to 100% (
344d20e) -
Increase coverage for app/views/subscriptions.py to 100% (
e96ddc7) -
Increase url_upload.py test coverage to 100% (
afe4227) -
subscriptions: Add comprehensive API tests reaching 100% coverage (
cd19ac6)
Unreleased
Documentation
-
changelog: Update changelog [skip ci] (
754ea99) -
changelog: Update changelog [skip ci] (
8db0093) -
changelog: Update changelog [skip ci] (
2be09ef)
Testing
-
Increase app/api/google_drive.py coverage to 100% (
14c9432) -
Increase coverage for app/views/pipelines.py to 100% (
344d20e) -
Increase url_upload.py test coverage to 100% (
afe4227) -
subscriptions: Add comprehensive API tests reaching 100% coverage (
cd19ac6)
Unreleased
Documentation
Testing
-
Increase app/api/google_drive.py coverage to 100% (
14c9432) -
Increase coverage for app/views/pipelines.py to 100% (
344d20e) -
Increase url_upload.py test coverage to 100% (
afe4227)
Unreleased
Documentation
- changelog: Update changelog [skip ci]
(
2be09ef)
Testing
-
Increase app/api/google_drive.py coverage to 100% (
14c9432) -
Increase coverage for app/views/pipelines.py to 100% (
344d20e)
Unreleased
Testing
-
Increase app/api/google_drive.py coverage to 100% (
14c9432) -
Increase coverage for app/views/pipelines.py to 100% (
344d20e)
v0.93.0 (2026-03-08)
Features
- tests: Increase test coverage for app/views/onboarding.py to 100%
(
ade7c9a)
Testing
- local_auth: Increase coverage for app/utils/local_auth.py to 100%
(
25c31a6)
v0.92.1 (2026-03-08)
v0.92.0 (2026-03-08)
Bug Fixes
- admin-users: Restore missing @router.get decorator on get_user endpoint
(
9b8eb91)
Chores
- Update plan to include forgot-username and login label clarification
(
44ea43f)
Continuous Integration
- Fix CodeQL javascript language identifier mismatch
(
3f8a95d)
Documentation
- changelog: Update changelog [skip ci]
(
f2d2aaa)
Features
- auth: Password reset, forgot username, and admin user management for local accounts
(
d36ba88)
v0.91.0 (2026-03-08)
Features
- backup: Extend backup and restore to PostgreSQL and MySQL/MariaDB
(
a0f5ba1)
v0.90.3 (2026-03-08)
Bug Fixes
- email: Create missing email template and decouple email destination settings
(
58c9b5d)
v0.90.2 (2026-03-08)
Bug Fixes
- tasks: Remove erroneous in_progress log that regressed finalize_document_storage status when
PDF/A archival is enabled
(
ff1310c)
v0.90.1 (2026-03-08)
Bug Fixes
- auth: Return 401 for API paths in require_login to prevent wrong post-login redirect
(
3aa5364)
v0.90.0 (2026-03-08)
Features
-
watch-folders: Add cloud provider watch folders (Dropbox, Drive, OneDrive, Nextcloud, S3, WebDAV) (
9a9efae) -
watch-folders: Add local/FTP/SFTP watch folder ingest with settings, tasks, tests, docs (
bdb67de)
v0.89.1 (2026-03-08)
Bug Fixes
- ui: Replace Tailwind v3-only peer toggles with Alpine.js-driven toggles in admin users modal
(
56f346a)
v0.89.0 (2026-03-08)
Bug Fixes
- backup: Address code review feedback - accessibility, CSRF, docs, imports
(
1877fc0)
Features
- backup: Add database backup/restore with scheduled retention and admin dashboard
(
2dd1ca0)
v0.88.2 (2026-03-08)
Bug Fixes
- auth: Prevent None==None admin credential bypass creating phantom admin user
(
b95f552)
v0.88.1 (2026-03-08)
Bug Fixes
- ui: Make pricing page CTAs link to /signup when local signup is enabled
(
db5f3d5)
v0.88.0 (2026-03-07)
Bug Fixes
- subscriptions: Address code review feedback
(
72f96e3)
Features
-
notifications: Admin push notifications and webhooks for user signup, plan changes, and payment issues (
fdc48c7) -
subscriptions: Add subscription change management with upgrade/downgrade scheduling (
231f983)
v0.87.0 (2026-03-07)
Bug Fixes
-
docs: Improve security and accessibility in help section (
fe8e1c4) -
ui: Move Help nav link outside auth conditional so it shows for all visitors (
6390584)
Features
- docs: Add built-in help section with How-To guides embedded in app
(
46b2f17)
v0.86.0 (2026-03-07)
Bug Fixes
- ui: Address code review feedback on complimentary badge and aria attributes
(
064ba72)
Features
- auth: Auto-create admin user profiles with highest tier and complimentary flag
(
97f85ce)
v0.85.0 (2026-03-07)
Bug Fixes
-
auth: Restore get_user function body lost in refactor; fix button period placement (
19c1ccb) -
ui: Update plan descriptions to reflect per-user pricing (
9d11d74)
Features
- auth: Enable local user signup without SMTP, add admin user creation
(
aa6e2fe)
v0.84.0 (2026-03-07)
Features
- ui: Show marketing landing page for unauthenticated multi-user visitors
(
68e8af9)
v0.83.0 (2026-03-07)
Bug Fixes
- tests: Correct OCR subtask retry test to patch process_with_ocr instead of azure module
(
c485d44)
Code Style
- Apply ruff auto-fix
(
650a992)
Features
- ui: Redesign navigation for multi-user SaaS UX with pre/post-login visibility
(
dc1ee0e)
v0.82.0 (2026-03-07)
Bug Fixes
-
Address code review feedback (
6a96705) -
Gate LocalUser machinery on multi_user_enabled for single-user backward compat (
b5b285e) -
Pricing page toggle and user auto-creation on OAuth login (
dd207ee) -
Resolve merge conflict with main, fix test failures (
b1ce28f) -
auth: Add WCAG 2.5.8 min-height to signup form inputs (
43f3f6b) -
tests: Set multi_user_enabled=False in auth module tests that call auth() directly (
6f197e6)
Documentation
Features
-
Add multi-step user onboarding wizard (
e0de0fd) -
auth: Add local user signup, email verification, and Stripe billing (
52e3852) -
onboarding: Add multi-step user onboarding wizard (
99df081)
Testing
-
Improve coverage for app/api/plans.py from 38% to 100% (
ac10ada) -
views: Add 100% coverage tests for app/views/admin_users.py (
7cebb82)
Unreleased
Documentation
- changelog: Update changelog [skip ci]
(
fa78a71)
Testing
-
Improve coverage for app/api/plans.py from 38% to 100% (
ac10ada) -
views: Add 100% coverage tests for app/views/admin_users.py (
7cebb82)
Unreleased
Testing
- views: Add 100% coverage tests for app/views/admin_users.py
(
7cebb82)
v0.81.0 (2026-03-07)
Bug Fixes
- pipelines: Seed standard processing pipeline as system default on startup
(
d318110)
Features
-
files: Show assigned pipeline info on file status and detail views (
a644efe) -
pipelines: Add custom processing pipeline engine (
89e0c2f)
Refactoring
- pipelines: Address code review - shared get_current_user_id, aria-live, deduplicate user ID
logic
(
1203a4b)
v0.80.0 (2026-03-07)
Bug Fixes
-
Add subscription_overage_percent to SETTING_METADATA and docs (
9853a27) -
Resolve mypy and djlint CI failures (
ab532b5) -
api: Move quota check before file write in ui-upload endpoint (
45949f3) -
subscriptions: Address code review feedback (
7f521eb)
Chores
-
Plan dynamic plan designer feature (
d439d9a) -
Plan pricing/limits overhaul with cost analysis (
5351d82)
Continuous Integration
- Merge quick and integration tests into a single test step
(
9670e84)
Documentation
- changelog: Update changelog [skip ci]
(
4277e5e)
Features
-
subscriptions: Add SaaS subscription tiers, pricing page, and enforced upload quotas (
179f612) -
subscriptions: Database-backed plan designer with admin CRUD and overage buffer (
ea7fffa)
Unreleased
Continuous Integration
- Merge quick and integration tests into a single test step
(
9670e84)
v0.79.0 (2026-03-06)
Bug Fixes
- ui: Apply code review feedback on admin_users template accessibility
(
a00e67b)
Documentation
-
changelog: Update changelog [skip ci] (
17b0f37) -
changelog: Update changelog [skip ci] (
299ae98) -
changelog: Update changelog [skip ci] (
158b113)
Features
- auth: Add admin user management dashboard
(
56f7f23)
Testing
-
Improve coverage for app/views/files.py from 59.67% to 99.35% (
aab1c5f) -
Improve coverage for extract_metadata_with_gpt to 100% (
b901576) -
Improve test coverage for app/utils/step_manager.py (
ed404b4) -
similarity: Improve test coverage for app/utils/similarity.py to 100% (
7acac42)
Unreleased
Documentation
Testing
-
Improve coverage for app/views/files.py from 59.67% to 99.35% (
aab1c5f) -
Improve coverage for extract_metadata_with_gpt to 100% (
b901576) -
Improve test coverage for app/utils/step_manager.py (
ed404b4) -
similarity: Improve test coverage for app/utils/similarity.py to 100% (
7acac42)
Unreleased
Documentation
- changelog: Update changelog [skip ci]
(
158b113)
Testing
-
Improve coverage for app/views/files.py from 59.67% to 99.35% (
aab1c5f) -
Improve coverage for extract_metadata_with_gpt to 100% (
b901576) -
Improve test coverage for app/utils/step_manager.py (
ed404b4) -
similarity: Improve test coverage for app/utils/similarity.py to 100% (
7acac42)
Unreleased
Testing
- Improve coverage for extract_metadata_with_gpt to 100%
(
b901576)
v0.78.1 (2026-03-06)
Bug Fixes
- views: Resolve mypy TemplateResponse typing and owner fallback
(
575b4e0)
v0.78.0 (2026-03-06)
Bug Fixes
-
Address code review feedback (
507c333) -
Address code review — use modern type hints and Callable annotation (
c8bc4af) -
tests: Add missing mock settings attrs in test_original_filename_preservation (
f4b793e)
Chores
- Plan general autocomplete widget for settings
(
3fd2bb3)
Code Style
- Apply ruff auto-fix
(
330c3ae)
Documentation
-
database: Add wizard and migration tool documentation (
cb3bf80) -
database: Update configuration guides with wizard cross-references, clean up review feedback (
7dae15f)
Features
-
database: Add database configuration wizard and migration tool (
f6fcaae) -
database: Integrate wizard into settings page, improve accessibility and test coverage (
174e489) -
multi-user: Add multi-user feature flag, owner_id model field, and user-scoped queries (
71f437e) -
multi-user: Add unclaimed doc visibility, claim/assign-owner endpoints, default_owner_id (
5722252) -
settings: Add dynamic autocomplete for AWS/Azure regions, OCR langs, and embedding models (
62d7ad7) -
ui: Add user autocomplete widget for default_owner_id, user search API, and documentation (
3601e2c)
Refactoring
- multi-user: Address code review - module imports, explicit false(), string length
(
a8d44b1)
Testing
- multi-user: Add comprehensive tests for multi-user isolation and feature flag
(
d7b7f14)
v0.77.2 (2026-03-02)
Bug Fixes
- upload: Fix upload progress counter showing done count always as 0
(
3be1fa5)
v0.77.1 (2026-03-02)
Bug Fixes
- tasks: Register missing Celery tasks in celery_worker.py
(
14adbee)
v0.77.0 (2026-03-02)
Bug Fixes
- ui: Address code review feedback for settings page
(
b8bd049)
Features
- ui: Redesign settings page with modern UX improvements
(
6ff1da2)
v0.76.0 (2026-03-02)
Documentation
- settings: Update SettingsManagement.md with new categories and setting types
(
3080e37)
Features
- settings: Add all missing config settings to settings page with enhanced UX
(
a259262)
v0.75.0 (2026-03-02)
Code Style
- Apply ruff auto-fix
(
fea8f5c)
v0.74.0 (2026-03-02)
Bug Fixes
-
similarity: Address code review - column-only queries, configurable batch size, WCAG touch targets (
55543be) -
similarity: Truncate text to fit embedding model context window, fix step tracking (
8e955f3)
Features
-
similarity: Add embedding pipeline, debug endpoints, backfill task, and scalable similarity search (
8d7c8e7) -
similarity: Add similarity pairs dashboard, step tracking, and fix tests for pre-computed embeddings (
c724b8d)
v0.73.0 (2026-03-02)
Features
- duplicates: Add duplicate document detection and management
(
ebea83a)
v0.72.1 (2026-03-02)
Bug Fixes
- database: Skip create_all for Alembic-tracked databases to prevent OperationalError on
webhook_configs
(
b87dd60)
v0.72.0 (2026-03-02)
Bug Fixes
- migrations: Resolve multiple Alembic heads causing CI test crash
(
f7cf7e2)
Continuous Integration
- Optimize pipeline for fail-fast feedback loop
(
ea0f7fb)
Documentation
-
changelog: Update changelog [skip ci] (
744a433) -
changelog: Update changelog [skip ci] (
fe9f84a) -
changelog: Update changelog [skip ci] (
3d38813) -
changelog: Update changelog [skip ci] (
ed85797) -
similarity: Add API documentation and fix template accessibility (
b7c7817)
Features
- similarity: Add document similarity detection with embeddings and cosine similarity
(
9748103)
Unreleased
Continuous Integration
- Optimize pipeline for fail-fast feedback loop
(
ea0f7fb)
Documentation
-
changelog: Update changelog [skip ci] (
fe9f84a) -
changelog: Update changelog [skip ci] (
3d38813) -
changelog: Update changelog [skip ci] (
ed85797)
Unreleased
Continuous Integration
- Optimize pipeline for fail-fast feedback loop
(
ea0f7fb)
Documentation
Unreleased
Continuous Integration
- Optimize pipeline for fail-fast feedback loop
(
ea0f7fb)
Documentation
- changelog: Update changelog [skip ci]
(
ed85797)
Unreleased
v0.71.0 (2026-03-01)
Documentation
-
webhooks: Add webhook API and configuration documentation (
a953b72) -
webhooks: Fix spelling - Behaviour to Behavior (
a85992e)
Features
- webhooks: Add webhook support for external integrations
(
e609141)
v0.70.0 (2026-03-01)
Features
- release: Add named release anchors with codenames and roadmap integration
(
d18c109)
Refactoring
- test: Simplify test patches per code review feedback
(
61d7639)
v0.69.0 (2026-03-01)
Documentation
Features
-
api: Add GET /api/diagnostic/health endpoint for monitoring (
85da309) -
tasks: Add retry logic with exponential backoff and jitter (
5ff7b72)
Testing
-
Increase code coverage for app/views/wizard.py to 100% (
bf337a1) -
status: Increase code coverage for app/views/status.py to 100% (
1095b41)
Unreleased
Documentation
- changelog: Update changelog [skip ci]
(
1775c4e)
Testing
-
Increase code coverage for app/views/wizard.py to 100% (
bf337a1) -
status: Increase code coverage for app/views/status.py to 100% (
1095b41)
Unreleased
v0.68.0 (2026-03-01)
Features
- api: Implement proper pagination for file list API
(
af34ce8)
v0.67.3 (2026-03-01)
Bug Fixes
- docker: Copy migrations directory and alembic.ini into Docker image
(
3d71d2b)
v0.67.2 (2026-03-01)
Bug Fixes
-
Address code review feedback - use specific exceptions, dynamic revision IDs in tests (
8d81ed6) -
ci: Add pytest-timeout, fix hanging test, split CI into quick + integration stages (
6c643e9) -
ci: Increase quick test job timeout to 15 minutes for CI runner headroom (
6a21adc)
Documentation
- Update CI workflow and integration test documentation for two-stage pipeline
(
c100250)
Refactoring
- database: Enforce Alembic-only database migrations, deprecate manual schema migrations
(
87d1b9d)
v0.67.1 (2026-03-01)
Bug Fixes
-
Add type: ignore for redis.scan() mypy false positive in cache.py (
d45d0a4) -
db: Check column existence before creating performance indexes (
febdf41)
Code Style
- Fix spelling (British to American English)
(
ce87b53)
Documentation
- Add Performance & Caching section to ConfigurationGuide
(
d5a95e9)
Performance Improvements
- db: Add indexes on query-hot columns and Redis caching layer
(
b79ba81)
v0.67.0 (2026-03-01)
Features
- imap: Add IMAP_READONLY_MODE feature flag to safeguard shared mailboxes
(
f8c5dd5)
v0.66.0 (2026-03-01)
Code Style
- search: Address code review - use const/let, fix date timezone, deduplicate filter keys
(
68857c1)
Documentation
- Update API and User Guide with search filters and saved searches
(
de09dba)
Features
- search: Add content-finding filters, saved searches, and text quality to Search view
(
5bf0a4c)
v0.65.0 (2026-03-01)
Features
-
Add bulk download, cloud OCR, and basic OCR quality filter (
705b970) -
Persist ocr_quality_score and use it for numeric filtering (
83c3405)
v0.64.1 (2026-03-01)
Bug Fixes
- Append new drops to upload queue instead of overwriting it
(
81c08ed)
v0.64.0 (2026-03-01)
Features
- api: Default download endpoint to processed file version
(
7b5494b)
v0.63.0 (2026-03-01)
Bug Fixes
-
api: Address code review feedback - logging, wildcard escaping, UX (
d5884f6) -
db: Add saved_searches table to runtime schema migrations (
82f7113)
Documentation
- api: Document advanced filtering and saved searches endpoints
(
cc9fd1a)
Features
- api: Add advanced filtering and saved searches
(
e5a4c6c)
v0.62.0 (2026-03-01)
Bug Fixes
-
Address code review feedback on tests and placeholder messages (
d095e30) -
ui: Preview modal falls back to original version when processed unavailable (
c814af1)
Features
- ui: Add pdf.js viewer, image zoom/pan, text preview, and preview modal
(
372e8cd)
Testing
- preview: Add 23 tests for document preview features
(
7a8ccba)
v0.61.0 (2026-02-28)
Continuous Integration
- a11y: Add djlint HTML accessibility lint to CI pipeline
(
1968a0e)
Documentation
- a11y: Add comprehensive AccessibilityGuide.md
(
1f48503)
Features
-
ui: Add accessibility foundations to base.html and styles.css (
364ff93) -
ui: Add ARIA attributes for accessibility improvements (
0969436) -
ui: Fix accessibility in upload, search, files, and login templates (
bf6bbe3)
v0.60.4 (2026-02-28)
Bug Fixes
- api: Use processed_file_path from DB in upload retry path resolution
(
bb98afa)
Testing
- Improve upload retry tests with legacy path assertions and priority verification
(
2f442b0)
v0.60.3 (2026-02-28)
Bug Fixes
-
Address code review feedback - restrict terminal step check to success only, add test assertions (
4fdb1b8) -
tasks: Resolve files stuck in Pending status despite completed processing (
2c55f07)
v0.60.2 (2026-02-27)
Bug Fixes
- upload: Fix multi-file drag-and-drop only uploading one file
(
dc9aec2)
v0.60.1 (2026-02-27)
Bug Fixes
-
status: Prevent false Completed status when mandatory pipeline steps have not run (
e6dd39c) -
status: Simplify terminal step guard condition in get_step_summary (
baa412b)
Testing
-
Add send_to_all_destinations step to test_status_filter_completed (
aba47af) -
Update 3 tests broken by terminal-step completed guard (
9795ca0)
v0.60.0 (2026-02-27)
Features
- queue: Add queue monitoring dashboard and pending banner on files page
(
c7c5718)
Refactoring
- queue: Address code review feedback — extract constants and sync refresh interval
(
4dd018f)
v0.59.1 (2026-02-27)
Bug Fixes
- api: Use stored file paths for preview and download endpoints
(
cded734)
v0.59.0 (2026-02-26)
Bug Fixes
- test: Update drop overlay text assertion to match new directory-upload message
(
4a251fd)
Features
-
upload: Adaptive 429 backoff, full Gotenberg file types, directory traversal (
a05690b) -
upload: Add directory traversal, queue throttling, and upload config settings (
35d2ed0)
v0.58.0 (2026-02-26)
Bug Fixes
- search: Correct file detail page URL in search results
(
da865b5)
Features
- views: Add document-centric view at /files/{id}
(
c540dd4)
v0.57.4 (2026-02-26)
Bug Fixes
-
tests: Fix OAuth integration tests failing due to Docker registry timeout (
36b6680) -
tests: Fix test_save_settings_outer_exception in OneDrive coverage tests (
b4e93c0) -
tests: Fix TestGetFullConfigException using PropertyMock on module-level settings (
44dcabd)
v0.57.3 (2026-02-26)
Bug Fixes
-
tests: Correct mock patch targets in google_drive coverage tests (
096aedb) -
tests: Use targeted settings mock instead of broad getattr patch (
c6ac6b5)
Testing
- coverage: Add celery_worker coverage and remove dead config_validator.py
(
ffa0e1e)
v0.57.2 (2026-02-26)
Bug Fixes
-
ui: Prevent search input from clearing on each keystroke and add dedicated /search page (
09a6337) -
ui: Sanitize Meilisearch HTML output, use event delegation, improve error messages (
483a5b7)
Documentation
- search: Update UserGuide with search page documentation and fix import order
(
e9dd3ef)
v0.57.1 (2026-02-26)
Bug Fixes
- Regenerate logo PNGs from SVG to fix DocuNova → DocuElevate branding
(
d83dfb1)
Code Style
- Apply ruff auto-fix
(
69cb16c)
Documentation
Testing
-
Improve coverage for process_with_ocr, api/settings, and settings_service to 90%+ (
d9abbc1) -
coverage: Add coverage tests for app/api/onedrive.py and app/api/google_drive.py (
e3cd687) -
coverage: Add tests to push coverage above 95% for 11 target files (
759647f)
Unreleased
Code Style
- Apply ruff auto-fix
(
69cb16c)
Documentation
- changelog: Update changelog [skip ci]
(
62e4521)
Testing
-
Improve coverage for process_with_ocr, api/settings, and settings_service to 90%+ (
d9abbc1) -
coverage: Add coverage tests for app/api/onedrive.py and app/api/google_drive.py (
e3cd687) -
coverage: Add tests to push coverage above 95% for 11 target files (
759647f)
Unreleased
Testing
-
Improve coverage for process_with_ocr, api/settings, and settings_service to 90%+ (
d9abbc1) -
coverage: Add tests to push coverage above 95% for 11 target files (
759647f)
v0.57.0 (2026-02-25)
Features
- privacy: Implement GDPR and global privacy compliance
(
0821e2f)
v0.56.2 (2026-02-25)
Bug Fixes
- database: Add runtime migrations for ocr_text, ai_metadata, document_title columns
(
db581ba)
Documentation
-
Add missing docs to mkdocs nav and README index (
6e78e9e) -
changelog: Update changelog [skip ci] (
3dced5e)
Unreleased
Documentation
- Add missing docs to mkdocs nav and README index
(
6e78e9e)
v0.56.1 (2026-02-25)
Bug Fixes
- mypy: Add missing type annotations in meilisearch_client.py
(
07e7b49)
Documentation
- Add Setup Wizard, Production Readiness, Database, K8s, and Licensing guides
(
139e23c)
v0.56.0 (2026-02-25)
Features
- ui: Add dark mode support with system preference detection and localStorage persistence
(
c428a7e)
v0.55.0 (2026-02-25)
Bug Fixes
- config: Default meilisearch_url to http://meilisearch:7700 for Docker/K8s service discovery
(
ff96340)
Code Style
- Apply ruff auto-fix
(
0930765)
Features
- helm: Add Helm chart for Kubernetes deployment and update DeploymentGuide
(
a08bfb9)
v0.54.0 (2026-02-25)
Features
- ocr: Fine-tune OCR quality criteria with stricter threshold and head-to-head comparison
(
89d5df7)
v0.53.1 (2026-02-25)
Bug Fixes
- ocr: Sync workflow steps with process_with_ocr replacing legacy azure step
(
37a3f7a)
Testing
- Fix test_retry_azure_ocr_success to patch process_with_ocr instead of legacy azure task
(
44c9f6d)
v0.53.0 (2026-02-24)
Bug Fixes
- ocr: Address code review: add model fallback default, remove unused variable
(
0c500e1)
Documentation
- changelog: Update changelog [skip ci]
(
b5fb7da)
Features
- ocr: Add AI-based embedded text quality check with automatic OCR fallback
(
b03bfb5)
Testing
- Achieve 90%+ code coverage across codebase
(
02ad558)
Unreleased
Testing
- Achieve 90%+ code coverage across codebase
(
02ad558)
v0.52.2 (2026-02-24)
Bug Fixes
- ocr: Ensure Tesseract language data for embed_text_layer regardless of active OCR provider
(
2b2a97c)
v0.52.1 (2026-02-24)
Bug Fixes
- ui: Resolve merge conflict markers in settings.html and add CI guard
(
66a4570)
v0.52.0 (2026-02-24)
Features
- ocr: Auto-install Tesseract/EasyOCR languages from settings
(
8a2a4dc)
v0.51.0 (2026-02-24)
Bug Fixes
- ocr: Address code review - add subprocess security comment and type hints in tests
(
50573ec)
Features
- ocr: Embed searchable text layer for providers without native PDF output
(
fec0326)
v0.50.1 (2026-02-24)
Bug Fixes
- ocr: Rewrite MistralOCRProvider to use native Mistral OCR API
(
c742383)
v0.50.0 (2026-02-24)
Code Style
- tests: Rename _SESSION_SECRET to TEST_SESSION_SECRET; tighten non-admin redirect assertions to
== 302
(
1f080a8)
Features
- tests: Increase code coverage from 89.28% to 92.15%
(
a1b9ac1)
v0.49.0 (2026-02-24)
Code Style
- Apply ruff auto-fix
(
0827b6e)
Features
- api: Remove redundant /env and /api/diagnostic/settings endpoints
(
f9d849f)
v0.48.0 (2026-02-23)
Bug Fixes
-
tests: Update process_document test patches to use process_with_ocr (
8828b71) -
tests: Update process_with_azure patch target in test_storage_reorganization (
7fdd8a4)
v0.47.0 (2026-02-23)
Documentation
-
changelog: Update changelog [skip ci] (
d70fffd) -
copilot: Checkpoint before comprehensive instructions overhaul (
dbea61d) -
copilot: Overhaul instructions — Ruff toolchain, 100% coverage, agent workflow, modern Python (
156e0ba)
Features
- ai: Handle temperature incompatibility for gpt-5 and o-series models, add model picker UI
(
a94b52e)
Unreleased
Documentation
-
copilot: Checkpoint before comprehensive instructions overhaul (
dbea61d) -
copilot: Overhaul instructions — Ruff toolchain, 100% coverage, agent workflow, modern Python (
156e0ba)
v0.46.0 (2026-02-23)
Bug Fixes
- api: Swap parameter order in test_ai_extraction to fix 500 error
(
ce4700a)
Features
- ui: Add copy button to text modals in file detail view
(
219e03e)
v0.45.0 (2026-02-23)
Chores
- Add example.com and smtp.example.com to copilot agent network allowlist
(
d93cd96)
Documentation
- changelog: Update changelog [skip ci]
(
d5e4a74)
Features
- api: Add POST /api/ai/test-extraction endpoint and Test Extraction UI button
(
ce73f23)
Testing
- api: Add comprehensive tests for AI extraction endpoint reaching 100% coverage
(
3262d65)
Unreleased
Chores
- Add example.com and smtp.example.com to copilot agent network allowlist
(
d93cd96)
v0.44.0 (2026-02-23)
Code Style
- Apply ruff auto-fix
(
724d7d8)
Features
-
Add AI provider abstraction layer with OpenAI, Azure, Anthropic, Gemini, Ollama, OpenRouter, LiteLLM support (
d4c7fb2) -
Add Portkey provider support and null-content guard to AI abstraction layer (
dcdef44) -
Update all OpenAI/ChatGPT refs + settings dropdown for fixed-value fields (
044da0f)
v0.43.0 (2026-02-23)
Features
- ui: Implement responsive mobile interface
(
d08e175)
v0.42.2 (2026-02-23)
Bug Fixes
- api: Pass base_url to OpenAI client in test endpoint to prevent UnsupportedProtocol error
(
d885b63)
v0.42.1 (2026-02-23)
Bug Fixes
- Fix automatic changelog creation with PSR v10
(
7f3e831)
0.40.0 - 2026-02-23
Retroactive summary. Releases v0.6.0 through v0.40.0 were cut automatically by
python-semantic-releasefrom conventional commits, but the CHANGELOG was not updated at the time due to a configuration bug (autoescape = true). This section documents all known changes made after v0.5.0.
Added
Security Middleware Stack
- CSRF Protection (
app/middleware/csrf.py): Per-session cryptographic tokens validated on all state-changing requests (POST/PUT/DELETE/PATCH). Token delivered viaX-CSRF-Tokenheader orcsrf_tokenform field. No-op whenAUTH_ENABLED=False. - Rate Limiting (
app/middleware/rate_limit.py): SlowAPI + Redis-backed rate limiting. Configurable defaults: 100 req/min (API), 600 req/min (uploads), 10 req/min (auth). Falls back to in-memory for development. - Rate Limit Decorators (
app/middleware/rate_limit_decorators.py): Convenience@limit("N/period")decorators for per-endpoint overrides. - Security Headers (
app/middleware/security_headers.py): Configurable HSTS, CSP,X-Frame-Options, andX-Content-Type-Optionsheaders. Each header individually togglable for reverse-proxy deployments. - Audit Logging (
app/middleware/audit_log.py): Per-request structured log entries with sensitive-value masking. Elevated[SECURITY]log level for 401/403/login/5xx events. - Request Size Limiting (
app/middleware/request_size_limit.py): Separate limits for JSON/form bodies (MAX_REQUEST_BODY_SIZE, default 1 MB) and file upload multipart bodies (MAX_UPLOAD_SIZE, default 1 GB). Returns HTTP 413 immediately without reading the full body. - CORS (
main.py): Configurable CORS policy viaCORS_ENABLED,CORS_ALLOWED_ORIGINS,CORS_ALLOW_CREDENTIALS,CORS_ALLOWED_METHODS, andCORS_ALLOWED_HEADERS.
New Storage Providers
- Amazon S3 (
app/tasks/upload_to_s3.py): Upload to S3-compatible buckets. Configured viaAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_REGION, andS3_BUCKET_NAME. - SFTP (
app/tasks/upload_to_sftp.py): Secure file transfer with password or private-key authentication. SupportsSFTP_DISABLE_HOST_KEY_VERIFICATIONflag. - FTP/FTPS (
app/tasks/upload_to_ftp.py): FTP with automatic FTPS upgrade attempt; plaintext fallback configurable viaFTP_ALLOW_PLAINTEXT. - WebDAV (
app/tasks/upload_to_webdav.py): HTTP Basic auth, configurable SSL verification (WEBDAV_VERIFY_SSL). - Email/SMTP (
app/tasks/upload_to_email.py): Send processed documents as email attachments. Supports TLS, configurable sender, and default recipient. - rclone (
app/tasks/upload_with_rclone.py): Delegate uploads to a locally configuredrclonebinary, enabling support for any of rclone's 40+ cloud providers.
File Processing Improvements
- PDF Page Rotation (
app/tasks/rotate_pdf_pages.py): Detects and corrects skewed pages using Azure Document Intelligence angle metadata. - Metadata Embedding (
app/tasks/embed_metadata_into_pdf.py): Writes GPT-extracted metadata as PDF document properties using pypdf. - PDF Splitting (
app/utils/file_splitting.py): Splits oversized PDFs at page boundaries into chunks ≤MAX_SINGLE_FILE_SIZEbytes. Each chunk is a valid, readable PDF. - Document Deduplication: SHA-256 hash-based duplicate detection. Controlled by
ENABLE_DEDUPLICATIONandSHOW_DEDUPLICATION_STEPsettings. - Forced Cloud OCR:
force_cloud_ocrflag onprocess_documenttask to bypass local text extraction and always use Azure Document Intelligence. Useful for reprocessing. - pypdf migration: Replaced PyPDF2 with pypdf (actively maintained fork); fixes CVE-2023-36464.
Processing Status Tracking (Dual-Table Architecture)
FileProcessingStepmodel: New DB table; single row per (file, step) pair tracking current state (pending,in_progress,success,failure,skipped). Replaces log-scanning for status queries.- Step Manager (
app/utils/step_manager.py): Initialises, updates, and queries processing steps. SupportsENABLE_DEDUPLICATIONconditional step inclusion. - Step Timeout Detection (
app/utils/step_timeout.py): Marks steps stuck inin_progressasfailureafter configurableSTEP_TIMEOUTseconds (default 600). - Stalled Step Monitor (
app/tasks/monitor_stalled_steps.py): Periodic Celery task (runs every minute) that calls the timeout detection logic. - Log Migration Utility (
app/utils/migrate_logs_to_steps.py): Back-fillsFileProcessingStepfrom existingProcessingLogentries for files processed before the new table existed.
New API Endpoints
POST /api/upload-from-url(app/api/url_upload.py): Upload a document from a remote URL. Includes SSRF protection (blocks private IPs and loopback addresses).GET /api/logs(app/api/logs.py): Paginated, filterable list ofProcessingLogentries; filterable byfile_idandtask_name.GET /api/diagnostic/settings(app/api/diagnostic.py): Admin-only endpoint that dumps non-sensitive configuration to logs and returns summary info.GET /api/whoami(app/api/user.py): Returns session user info including a Gravatar URL derived from the authenticated user's email.
Notification System
- Apprise integration (
app/utils/notification.py): Multi-channel notifications via the Apprise library (70+ services: Slack, email, Telegram, PushOver, etc.). Configured viaNOTIFICATION_URLS. - Configurable triggers:
NOTIFY_ON_TASK_FAILURE,NOTIFY_ON_CREDENTIAL_FAILURE,NOTIFY_ON_STARTUP,NOTIFY_ON_SHUTDOWN,NOTIFY_ON_FILE_PROCESSED. - Uptime Kuma integration (
app/tasks/uptime_kuma_tasks.py): Periodic heartbeat ping to a configured Uptime Kuma push URL (UPTIME_KUMA_URL,UPTIME_KUMA_PING_INTERVAL).
Admin & Operations
- Admin File Manager (
app/views/filemanager.py): Three-pane admin view at/filemanager:- Filesystem view: Browse
workdirtree with DB cross-reference per file. - Database view: List all
FileRecordrows with on-disk existence flag. - Reconcile view: Delta view showing orphan disk files and ghost DB records.
- Filesystem view: Browse
- Credential Checker Task (
app/tasks/check_credentials.py): Periodic Celery task that validates all configured provider credentials (OpenAI, Azure, Dropbox, Google Drive, OneDrive) and sends a notification on failure. - Settings Audit Log (
ApplicationSettings+SettingsAuditLogmodels): Every settings change is recorded with timestamp, user, and before/after values. - ProcessAll Throttling: Configurable
PROCESSALL_THROTTLE_THRESHOLDandPROCESSALL_THROTTLE_DELAYto prevent flooding the task queue during bulk reprocessing. - Worker Settings Sync (
app/utils/settings_sync.py): Publishes a version token to Redis whenever settings change; Celery workers reload settings from DB before each task, ensuring config changes propagate without a restart.
Browser Extension (v1.1.0)
- Send files and web pages from the browser directly to DocuElevate with one click.
- Context menu integration on links, images, and pages.
- Manifest v3 compatible; works with Chrome, Firefox, Edge, and Chromium-based browsers.
- In-browser notifications for upload status.
OpenAI Customization
OPENAI_BASE_URLsetting (defaulthttps://api.openai.com/v1): Enables use of OpenAI-compatible endpoints (Azure OpenAI, local models, etc.).OPENAI_MODELsetting (defaultgpt-4o-mini): Model selection without code changes.
Configuration & Developer Experience
- Config Loader (
app/utils/config_loader.py): Hot-reload of settings from DB without service restart. - Config Validator (
app/utils/config_validator/): Modular validation with provider status, masked display, and per-provider readiness checks. - Input Validation (
app/utils/input_validation.py): Centralised validators for sort fields, sort order, search query length, task ID format (UUID v4), and settings key format. - Filename Utilities (
app/utils/filename_utils.py):sanitize_filename,get_unique_filename, andextract_remote_pathhelpers shared across upload tasks. - OAuth Helper (
app/utils/oauth_helper.py): Shared token-exchange logic reused by Dropbox, Google Drive, and OneDrive OAuth flows. - Retry Configuration (
app/tasks/retry_config.py):BaseTaskWithRetrybase class with auto-retry (3 attempts, 10 s initial delay, exponential backoff) shared by all upload tasks. - HTTP Request Timeout: Configurable
HTTP_REQUEST_TIMEOUT(default 120 s) to handle large file operations gracefully. - File Deletion Toggle:
ALLOW_FILE_DELETEsetting to prevent accidental deletions in production.
Changed
- Docker image renamed from
christianlouis/document-processortochristianlouis/docuelevate app/routes/deprecated; all endpoints migrated toapp/api/andapp/views/FileRecordstatus now derived fromFileProcessingSteprows instead of scanningProcessingLog- Settings changes now propagated to Celery workers via Redis version key (no restart required)
- Dependency scanner switched from
safetytopip-auditin CI pipeline - CI pipeline streamlined: removed redundant DeepSource integration (40–50% faster CI runs)
app/utils/logging.pyintroduced as canonical import point forlog_task_progress
Fixed
- Critical: Path Traversal via GPT Metadata Filename — GPT-extracted
filenamemetadata was used directly in file path construction. Fixed by running all GPT-suggested filenames throughsanitize_filenamebefore use. - Medium: Path Traversal in File API —
file_pathquery parameters sanitised to block../sequences. - Medium: Unvalidated Sort Parameters — sort field and order inputs in file list endpoint now validated against an allowlist.
- OAuth admin group detection now correctly handles groups list from Authentik userinfo response.
- Session secret validation raises a clear error at startup instead of silently using an insecure default.
- Redirect loop for logged-in non-admin users on
/settingsroute resolved.
Security
- CSRF protection added to all state-changing endpoints
- Rate limiting prevents brute-force and DoS attacks on auth and upload endpoints
- Security response headers (HSTS, CSP, X-Frame-Options, X-Content-Type-Options) enabled by default
- Audit log records all HTTP requests with sensitive-value masking
- Request body size limits prevent memory-exhaustion attacks
- Path traversal vulnerabilities in file path handling remediated (see security audit
docs/security/PATH_TRAVERSAL_AUDIT_2026-02-10.md) - Host key verification enforced for SFTP by default (
SFTP_DISABLE_HOST_KEY_VERIFICATION=False) - FTPS attempted by default for FTP connections; plaintext requires explicit opt-in
- SSRF protection on URL-upload endpoint (blocks private IP ranges and loopback)
- Input validation on all user-controlled sort/search/key parameters
Documentation
- Added
docs/RateLimitingStrategy.md— rate limiting configuration guide - Added
docs/FileProcessingStatusArchitecture.md— dual-table architecture explanation - Added
docs/NotificationsSetup.md— Apprise notification setup guide - Added
docs/StorageArchitecture.md— document storage directory layout - Added
docs/AuthenticationSetup.md— OAuth2 / Basic Auth configuration - Added
docs/AmazonS3Setup.md,docs/DropboxSetup.md,docs/GoogleDriveSetup.md,docs/OneDriveSetup.md— per-provider setup guides - Added
docs/CredentialRotationGuide.md— how to rotate API keys and credentials - Added
docs/ConfigurationTroubleshooting.md— common configuration problems - Added
docs/security/PATH_TRAVERSAL_AUDIT_2026-02-10.md— security audit findings - Added
docs/BrowserExtension.md— browser extension installation and usage - Added
docs/CIToolsGuide.mdanddocs/CIWorkflow.md— CI pipeline documentation - Added
docs/BuildMetadata.md— build metadata file documentation - CI de-duplication summary archived in
docs/CI_DEDUPLICATION_SUMMARY.md - OAuth testing summary archived in
OAUTH_IMPLEMENTATION_SUMMARY.md - WebDAV testing summary archived in
WEBDAV_TESTING_SUMMARY.md
0.5.0 - 2026-02-08
Added
- Settings Management System: Database-backed configuration management with web UI
- Admin-only settings page at
/settingswith 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
- Admin-only settings page at
- 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_SECRETvia 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 (
adminoradministrators) - Proper decorator pattern for admin access control
- Session-based authorization with redirect on unauthorized access
- Admin flag set from OAuth group membership (
Changed
- Updated
requirements.txtto includecryptography>=41.0.0for encryption - Enhanced settings service to auto-encrypt/decrypt sensitive values transparently
- Improved
/settingsroute with proper admin decorator (fixes redirect loop) - Updated settings template with enhanced UI: source badges, encryption indicators, show/hide toggles
- Modified
app/views/general.pyto redirect to wizard when setup required
Fixed
- Fixed
/settingsendpoint 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 - Comprehensive user guide
- Added SETTINGS_IMPLEMENTATION.md - Technical documentation
- Added FRAMEWORK_ANALYSIS.md - Research on existing frameworks
- Added 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 utilitiesapp/utils/setup_wizard.py- Wizard detection and logicapp/views/wizard.py- Wizard routes (GET/POST /setup)frontend/templates/setup_wizard.html- Wizard UIfrontend/templates/settings.html- Enhanced settings page
- Modified files:
app/utils/settings_service.py- Encryption integration, 102 setting metadataapp/views/settings.py- Fixed decorator, source detectionapp/auth.py- OAuth admin supportapp/api/settings.py- Enhanced admin checkstests/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
- Drag-and-drop file upload on Files page: You can now drag and drop files anywhere on the Files view (
/files) to upload them, making it more convenient to add documents without navigating to the dedicated Upload page - Visual drop overlay that appears when dragging files over the Files page
- Upload progress modal in bottom-right corner showing real-time upload status
- Reusable
upload.jsmodule extracted from upload page for better code maintainability - Tests for drag-and-drop functionality presence in Files view
- Enhanced visual feedback with animations and improved styling
Changed
- Refactored upload functionality into a shared JavaScript module (
/static/js/upload.js) - Updated Upload page to use the new shared upload module
- Improved drop zone visual styling with better colors and animations
Security
- Continued security improvements from v0.3.2 (authlib, starlette updates)
0.3.2 - 2026-02-06
Added
- Comprehensive test infrastructure with pytest
- Security scanning workflows (CodeQL, Bandit)
- SECURITY_AUDIT.md documentation
- ROADMAP.md and MILESTONES.md planning documents
- API integration tests and configuration validation tests
- Pre-commit hooks configuration
Changed
- Updated authlib to 1.6.5+ (security fix)
- Updated starlette to 0.49.1+ (DoS vulnerability fix)
- Improved SESSION_SECRET validation and handling
- Enhanced .gitignore for security
- Updated README with improved documentation structure
Fixed
- Critical security vulnerabilities in dependencies
- Session security issues
0.3.1 - 2026-01-15
Added
- Files view with sorting and filtering capabilities
- Bulk operations (delete, reprocess) for multiple files
- File detail view with processing history
- Processing flow visualization
Changed
- Improved UI responsiveness
- Enhanced error handling and user feedback
Fixed
- Various bug fixes in file processing pipeline
0.3.0 - 2025-12-20
Added
- OAuth2 authentication support with Authentik
- Multi-provider storage support (Dropbox, Google Drive, OneDrive, S3, Nextcloud)
- Azure Document Intelligence integration for OCR
- OpenAI metadata extraction
- Gotenberg PDF conversion service integration
- IMAP integration for email attachment processing
- REST API with FastAPI
- Web UI for document management
- Celery task queue for asynchronous processing
Changed
- Major architectural improvements
- Database schema optimizations
0.2.0 - 2025-11-01
Added
- Basic document upload functionality
- Simple storage integration
- Basic metadata extraction
0.1.0 - 2025-10-01
Added
- Initial release
- Core document processing framework
- Basic file handling
Historical Release Links
Note: Tags v0.3.1, v0.3.2, v0.3.3, v0.5.0, and the retroactive v0.40.0 summary do not correspond
one-to-one with formal GitHub Releases from that period. Going forward all releases have corresponding
GitHub Releases and tags created automatically by python-semantic-release.