Readur/migrations
perf3ct 92b21350db feat(webdav): track directory etags
✅ Core Optimizations Implemented

  1. 📊 New Database Schema: Added webdav_directories table to track
directory ETags, file counts, and metadata
  2. 🔍 Smart Directory Checking: Before deep scans, check directory
ETags with lightweight Depth: 0 PROPFIND requests
  3. ΓÜí Skip Unchanged Directories: If directory ETag matches, skip the
entire deep scan
  4. 🗂️ N-Depth Subdirectory Tracking: Recursively track all
subdirectories found during scans
  5. 🎯 Individual Subdirectory Checks: When parent unchanged, check
each known subdirectory individually

  🚀 Performance Benefits

  Before: Every sync = Full Depth: infinity scan of entire directory
treeAfter:
  - First sync: Full scan + directory tracking setup
  - Subsequent syncs: Quick ETag checks → skip unchanged directories
entirely
  - Changed directories: Only scan the specific changed subdirectories

  📁 How It Works

  1. Initial Request: PROPFIND Depth: 0 on /Documents → get directory
ETag
  2. Database Check: Compare with stored ETag for /Documents
  3. If Unchanged: Check each known subdirectory (/Documents/2024,
/Documents/Archive) individually
  4. If Changed: Full recursive scan + update all directory tracking
data
2025-07-01 21:22:16 +00:00
..
20250620100000_initial_schema.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100001_add_ocr_queue.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100002_add_enhanced_ocr_fields.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100003_add_ocr_queue_function.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100004_update_settings_defaults.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100005_create_ocr_analytics_view.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100006_add_missing_ocr_columns.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100007_fix_ocr_queue_stats_types.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100008_add_webdav_fields.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100009_add_user_roles.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100010_notifications.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100011_add_sources_table.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100012_add_enhanced_ocr_settings.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100013_add_database_guardrails.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100014_update_file_paths_to_structured_dirs.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100015_add_ocr_failure_reason.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100016_add_file_hash_field.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100017_add_labels_system.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100018_add_assigned_by_to_document_labels.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100019_fix_completed_today_count.sql feat(migrations): resolve migrations names and remove legacy migrations code 2025-06-23 21:08:43 +00:00
20250620100020_normalize_existing_etags.sql fix(migrations): fix comment referencing old migration name 2025-06-23 21:10:44 +00:00
20250624000001_add_ignored_files_table.sql feat(server/client): implement feature of ignoring already deleted files, and add failed OCR queue tests 2025-06-24 17:20:33 +00:00
20250626000001_add_oidc_user_mapping.sql feat(server): set up oidc system and migrations 2025-06-26 18:52:57 +00:00
20250628000001_backfill_ocr_confidence.sql feat(migration): disable OCR consistency trigger for OCR confidence backfill 2025-06-28 17:23:35 +00:00
20250628000002_populate_ocr_queue_from_pending.sql fix(ocr_status): populate the ocr queue with pending jobs and add easy 'retry' button 2025-06-28 18:08:00 +00:00
20250628000003_add_failed_documents_table.sql feat(server/client): add failed_documents table to handle failures, and move logic of failures 2025-06-28 20:52:58 +00:00
20250628000004_migrate_failed_ocr_to_failed_documents.sql feat(server/client): resolve failing tests 2025-06-28 21:21:05 +00:00
20250630104504_add_document_metadata_fields.sql feat(server/client): add metadata to file view 2025-06-30 19:13:16 +00:00
20250701000000_add_webdav_directories.sql feat(webdav): track directory etags 2025-07-01 21:22:16 +00:00