docs(05-04): complete WebDAVBackend + NextcloudBackend plan — SUMMARY and STATE
- 05-04-SUMMARY.md: 2 tasks (31 tests, 4 files), 8 min, 1 auto-fixed deviation (factory dispatch) - STATE.md: plan advanced to 4/8, session log updated, 3 new key decisions recorded
This commit is contained in:
+8
-4
@@ -28,12 +28,12 @@ progress:
|
||||
| 2 | Users & Authentication | ✓ Complete (5/5 plans) |
|
||||
| 3 | Document Migration & Multi-User Isolation | ✓ Complete (5/5 plans, UAT passed, security gate passed) |
|
||||
| 4 | Folders, Sharing, Quotas & Document UX | ✓ Complete (9/9 plans, UAT 14/15 passed, 1 bug fixed) |
|
||||
| 5 | Cloud Storage Backends | In Progress (3/8 plans complete) |
|
||||
| 5 | Cloud Storage Backends | In Progress (4/8 plans complete) |
|
||||
|
||||
## Current Position
|
||||
|
||||
**Phase:** 05-cloud-storage-backends — In Progress
|
||||
**Plan:** 3/8
|
||||
**Plan:** 4/8
|
||||
**Progress:** [████████░░] 84%
|
||||
|
||||
## Performance Metrics
|
||||
@@ -128,6 +128,9 @@ progress:
|
||||
| cache_discovery=False on Drive build() | Prevents /tmp discovery cache writes — directory traversal vector (T-05-03-05) |
|
||||
| createUploadSession for all OneDrive uploads | No 4 MB size gate; resumable sessions handle small and large files through same code path (Pitfall 6) |
|
||||
| MSAL invalid_grant via result.get('error') | MSAL returns dict (never raises); field-level check is correct — Assumption A3 confirmed |
|
||||
| WebDAVBackend SSRF double guard pattern | validate_cloud_url in __init__ (construct-time) AND before every asyncio.to_thread() call — mirrors D-17 requirement for DNS-rebinding mitigation |
|
||||
| nextcloud/webdav dispatch to distinct classes | NextcloudBackend for 'nextcloud' provider (has list_folder); WebDAVBackend for 'webdav' — identical constructor signatures |
|
||||
| webdavclient3 upload_to/download_from confirmed | A1 assumption in RESEARCH.md was correct; verified via runtime dir(Client) inspection before use |
|
||||
|
||||
### Open Questions
|
||||
|
||||
@@ -174,6 +177,7 @@ _Updated at each phase transition._
|
||||
| Last session | 2026-05-28 — Plan 05-01 executed: Wave 0 Nyquist scaffold — 19 xfail stubs in test_cloud.py, 4 cloud fixtures in conftest.py, 6 package pins, 8 config settings; 172 passed / 43 xfailed |
|
||||
| Last session | 2026-05-28 — Plan 05-02 executed: cloud_utils.py (SSRF+HKDF), cloud_cache.py (TTLCache), storage factory extended; 199 passed / 43 xfailed / 1 pre-existing failure |
|
||||
| Last session | 2026-05-28 — Plan 05-03 executed: GoogleDriveBackend (Drive v3, cache_discovery=False, asyncio.to_thread) + OneDriveBackend (MSAL, resumable upload, CHUNK_SIZE=10MB); 262 passed / 43 xfailed / 1 pre-existing failure |
|
||||
| Next action | Execute Plan 05-04: WebDAVBackend + NextcloudBackend |
|
||||
| Last session | 2026-05-28 — Plan 05-04 executed: WebDAVBackend + NextcloudBackend (SSRF double-guard, asyncio.to_thread, list_folder); 262 passed / 43 xfailed / 1 pre-existing failure |
|
||||
| Next action | Execute Plan 05-05: Cloud API Endpoints |
|
||||
| Pending decisions | None |
|
||||
| Resume file | `.planning/phases/05-cloud-storage-backends/05-04-PLAN.md` |
|
||||
| Resume file | `.planning/phases/05-cloud-storage-backends/05-05-PLAN.md` |
|
||||
|
||||
Reference in New Issue
Block a user