perf3ct
aa5bd77753
feat(webdav): get rid of complex loop detection
2025-09-09 02:11:57 +00:00
perf3ct
88c376f655
feat(webdav): add some stress test utilities
2025-09-09 01:38:36 +00:00
perf3ct
43b679f59b
fix(server): resolve compilation warnings and fix test that expects no pass, to have it actually expect pass
2025-09-02 22:51:17 +00:00
perf3ct
f6eb7ba49f
feat(metrics): try to simplify webdav metrics some
2025-08-23 22:17:40 +00:00
perf3ct
1b4573f658
feat(webdav): resolve failing migration tests, and implement better error handling
2025-08-23 18:52:52 +00:00
perf3ct
18832b9c12
feat(webdav): fix all the wonderful compilation issues
2025-08-21 04:29:36 +00:00
perf3ct
b7dd64c8f6
feat(webdav): try to do better webdav errors to not slam webdav endpoints
2025-08-20 21:59:14 +00:00
perf3ct
d793509af9
feat(source): update names of sourceerror, and update tests
2025-08-17 22:37:41 +00:00
perf3ct
6a64d9e6ed
feat(source): implement generic "SourceError" and then have it be propagated as "WebDAVerror", etc.
2025-08-17 22:05:58 +00:00
perf3ct
cddba50799
feat(webdav): webdav error management and tests
2025-08-17 20:16:46 +00:00
perf3ct
93c2863d01
feat(webdav): support capturing individual directory errors in webdav
2025-08-14 16:24:05 +00:00
perf3ct
67ae68745c
fix(dev): remove unneeded docs
2025-08-13 20:51:13 +00:00
perf3ct
caf4e7cf7d
feat(docs): update docs for S3 backend implemenation
2025-08-13 20:24:59 +00:00
perf3ct
862c36aa72
feat(storage): further support the s3 storage backend
2025-08-01 17:57:09 +00:00
perf3ct
abd55ef419
feat(storage): abstract storage to also support s3, along with local filesystem still
2025-08-01 04:33:08 +00:00
perf3ct
3ad0dd3600
feat(server): set up new storage service
2025-08-01 02:50:38 +00:00
perf3ct
68ceb1f9cb
feat(storage): implement s3 for storage
2025-08-01 00:27:13 +00:00
perf3ct
32983c3fba
feat(server): implement #106 for per-user watch directories
2025-07-31 00:10:10 +00:00
perf3ct
e62e73a249
fix(tests): have the updated integration tests at least compile
2025-07-30 04:21:16 +00:00
perf3ct
d7a0a1f294
feat(server): do a *much* better job at determining file types thanks to infer rust package
2025-07-29 21:28:33 +00:00
perf3ct
e938ae3bd1
feat(debug): add some really...really noisy debugging for WebDAV URL paths
...
fadsf
2025-07-29 04:10:09 +00:00
perf3ct
24269ea513
feat(tests): resolve duplicated test coverage for webdav functionality
2025-07-27 20:36:54 +00:00
perf3ct
023d424293
feat(server/client): I have no words, hopefully this lesser abstraction and webdav tracking works now
2025-07-27 19:29:45 +00:00
perf3ct
2c0ef814d9
feat(client/server): implement better source sync output
2025-07-27 05:02:13 +00:00
perf3ct
1939c4aec3
feat(webdav): create dedicated module for managing the mess that is WebDAV XML responses
2025-07-26 23:37:09 +00:00
perf3ct
8c9d5dc12b
feat(webdav): move to tracking all subdirectory etags
2025-07-22 19:59:25 +00:00
perf3ct
089d6c2853
fix(tests): resolve issues in unit tests due to dep changes
2025-07-17 16:09:10 +00:00
perf3ct
ac49d8c2c9
fix(tests): fix urls used in test
2025-07-12 23:27:27 +00:00
perf3ct
e736d485ee
fix(webdav): fix incorrect concatenation logic when building URLs
2025-07-12 23:26:19 +00:00
perf3ct
3fbf941364
fix(webdav): make sure to normalize URL for double slashes, trailing slashes, etc.
2025-07-12 23:15:14 +00:00
perf3ct
ea43f79a90
feat(server): show source metadata better, and implement tests
2025-07-10 21:40:16 +00:00
perf3ct
0465777890
feat(client): show more fields for Documents
2025-07-10 21:02:15 +00:00
perf3ct
5b21c87675
feat(tests): move integration and unit tests to correct locations
2025-07-04 19:37:43 +00:00
perf3ct
fbd7d561c3
fix(tests): binary and tests at least compile now
2025-07-04 19:07:53 +00:00
perf3ct
497b34ce0a
fix(server): resolve type issues and functions for compilation issues
2025-07-04 00:53:32 +00:00
perf3ct
0e84993afa
fix(server): resolve import issues
2025-07-03 23:58:11 +00:00
perf3ct
b9e0e5b905
feat(dev): also break up the large webdav_service.rs file into smaller ones
2025-07-03 19:57:31 +00:00
perf3ct
459b8622bb
feat(webdav): also add some crazy source automatic validation
2025-07-03 05:26:36 +00:00
perf3ct
15b1f40cc1
feat(webdav): make sure to have scanned all subdirectories
2025-07-03 05:02:17 +00:00
perf3ct
69c40c10fa
feat(webdav): gracefully recover webdav from stops/crashes
2025-07-03 04:45:25 +00:00
perf3ct
2297eb8261
feat(webdav): also set up deep scanning button and fix unit tests
2025-07-03 04:24:26 +00:00
perf3ct
b8dd23655d
feat(webdav): directory etag smart checking and all that
2025-07-03 00:26:56 +00:00
perf3ct
d26b9e386b
fix(webdav): resolve issue with webdav subdirectories not being discovered
2025-07-02 23:37:39 +00:00
perf3ct
6bdd6f4a56
feat(server): implement DEBUG environment variable
2025-07-02 17:57:57 +00:00
perf3ct
68aa492a96
fix(server): resolve NUMERIC db type and f64 rust type
2025-07-02 02:26:11 +00:00
perf3ct
d4b57d2ae0
feat(server/client): implement retry functionality for both successful and failed documents
2025-07-02 00:06:47 +00:00
perf3ct
a381cdd12c
feat(webdav): also fix the parser to include directories, and add tests
2025-07-01 22:03:06 +00:00
perf3ct
c1dbd06df2
feat(tests): add unit tests for new webdav functionality
2025-07-01 21:39:31 +00:00
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
perf3ct
9e43df2fbe
feat(server/client): add metadata to file view
2025-06-30 19:13:16 +00:00