v0.1: WebDAV client interop testing (rclone, Finder, Cyberduck, Explorer) #2

Open
opened 2026-07-18 20:16:56 +00:00 by Cordy · 2 comments
Owner

WebDAV is verified against curl only (all methods return correct status codes and payloads). Real clients are pickier — each has quirks around LOCK, PROPFIND properties, trailing slashes, and header casing.

Test matrix (v0.1 gate):

  • rclonerclone lsd/copy/sync against /dav/ (most important: it's the power-user path and the easiest to automate in CI later)
  • macOS Finder — Connect to Server → browse, upload, rename, delete (exercises the fake LOCK path)
  • Cyberduck — full CRUD
  • Windows Explorer — map network drive (notoriously strict; may need OPTIONS on / and Basic-over-HTTP registry caveat documented)
  • Nextcloud desktop client (generic WebDAV mode) — nice-to-have, big migration story if it works

Document per-client findings + required workarounds in the wiki. Anything requiring protocol changes gets its own issue.

WebDAV is verified against curl only (all methods return correct status codes and payloads). Real clients are pickier — each has quirks around LOCK, PROPFIND properties, trailing slashes, and header casing. Test matrix (v0.1 gate): - [ ] **rclone** — `rclone lsd/copy/sync` against `/dav/` (most important: it's the power-user path and the easiest to automate in CI later) - [ ] **macOS Finder** — Connect to Server → browse, upload, rename, delete (exercises the fake LOCK path) - [ ] **Cyberduck** — full CRUD - [ ] **Windows Explorer** — map network drive (notoriously strict; may need `OPTIONS` on `/` and Basic-over-HTTP registry caveat documented) - [ ] **Nextcloud desktop client** (generic WebDAV mode) — nice-to-have, big migration story if it works Document per-client findings + required workarounds in the wiki. Anything requiring protocol changes gets its own issue.
Author
Owner

Client interop matrix complete against v0.0.2 (2026-07-20):

  • Finder ✔ — ⌘K mount, browse, MKCOL + rename, LOCK/PUT/GET/UNLOCK copy, AppleDouble ._* traffic. Pod 0 restarts (this was the #5 killer traffic).
  • rclone ✔ — via new interop-rclone.yml manual-dispatch workflow on the LAN runner: lsd, upload, rclone check (0 differences; no common hash — expected, WebDAV exposes none), round-trip download byte-identical, purge cleanup. Re-runnable any time from the Actions tab (needs CAIRN_TEST_PASSWORD secret, already set).
  • Cyberduck ✔ — WebDAV (HTTP) connect on port 80, browse, MKCOL (cyberduck-test), upload (5.9 KB), download round-trip (size-verified), DELETE cleanup. Only client-side notes: Cyberduck's plaintext-HTTP warning (expected on LAN; goes away if/when files.c0rdyceps.ch TLS exposure happens) and its 401→login-prompt flow on first connect (normal Basic-auth challenge handling).

Pod stayed Running, 0 restarts across all three clients. Windows Explorer remains untested (no Windows box handy) — leaving as a nice-to-have.

**Client interop matrix complete against v0.0.2 (2026-07-20):** - **Finder** ✔ — ⌘K mount, browse, MKCOL + rename, LOCK/PUT/GET/UNLOCK copy, AppleDouble `._*` traffic. Pod 0 restarts (this was the #5 killer traffic). - **rclone** ✔ — via new `interop-rclone.yml` manual-dispatch workflow on the LAN runner: lsd, upload, `rclone check` (0 differences; no common hash — expected, WebDAV exposes none), round-trip download byte-identical, purge cleanup. Re-runnable any time from the Actions tab (needs `CAIRN_TEST_PASSWORD` secret, already set). - **Cyberduck** ✔ — WebDAV (HTTP) connect on port 80, browse, MKCOL (`cyberduck-test`), upload (5.9 KB), download round-trip (size-verified), DELETE cleanup. Only client-side notes: Cyberduck's plaintext-HTTP warning (expected on LAN; goes away if/when `files.c0rdyceps.ch` TLS exposure happens) and its 401→login-prompt flow on first connect (normal Basic-auth challenge handling). Pod stayed Running, 0 restarts across all three clients. Windows Explorer remains untested (no Windows box handy) — leaving as a nice-to-have.
Author
Owner

Status (2026-07-25): rclone, Finder, Cyberduck all verified against the live dogfood (2026-07-20). Windows Explorer is the only remaining client — moved to v0.4 as the parity item. Nextcloud desktop client is superseded by the dedicated "Desktop sync client — strategic spike" (#20).

Status (2026-07-25): rclone, Finder, Cyberduck all verified against the live dogfood (2026-07-20). **Windows Explorer is the only remaining client** — moved to v0.4 as the parity item. Nextcloud desktop client is superseded by the dedicated "Desktop sync client — strategic spike" (#20).
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#2
No description provided.