n3xt0r/laravel-webdav-server
A Laravel package that brings a WebDAV server to your application, letting you expose files and storage over the WebDAV protocol for seamless sync and access from desktop and mobile clients.
Assessment scope: No prior assessment exists. This evaluation is based solely on the 1.0.0 release notes; code, tests, and documentation have not yet been reviewed. Treat findings as hypotheses to validate in a spike.
Architecture fit
Integration feasibility
{root}/{prefix}/{principal.id} path convention implies a per-principal (per-user or per-tenant) namespace; if our identity model is teams/orgs rather than users, or if IDs are not stable, custom PathResolverInterface work is required.PathResolverService and the WebDavPath facade allow path/mount-URL resolution outside the request pipeline, which is what makes non-WebDAV surfaces (UI links, share emails, background jobs) viable without duplicating path logic. That is a real integration enabler, not a nicety.Technical risk
OPTIONS, PROPFIND, 207 Multi-Status, root collection handling, and MS-Author-Via, plus a client matrix (Windows Explorer, Finder, WinSCP, Cyberduck). Those are the right claims to make, but they require first-hand verification — client quirks, not spec compliance, are what break in production.LOCK/UNLOCK support is claimed. This is a material question: Office and some sync clients depend on advisory locking for safe editing, and its absence changes the product story from "shared drive" to "read-mostly / single-writer."Key questions
LOCK/UNLOCK supported now, planned, or explicitly out of scope?Range requests, and PHP memory/timeout characteristics.PROPFIND performance with Depth: infinity and large directories, particularly against S3-backed disks.litmus), plus maintainer count / bus factor and license.Stack fit
Migration path
{root}/{prefix}/{principal.id}, or we implement a custom PathResolverInterface and run a one-time, idempotent, reversible relocation job with a verified rollback.Compatibility
PROPFIND, OPTIONS, MKCOL, MOVE, COPY), preserve Depth and Destination, and allow the MS-Author-Via header. This is a common silent failure point.Sequencing
PROPFIND on representative trees.Maintenance
Support
Scaling
PROPFIND per directory view, and Depth: infinity on a large tree is a known amplification risk. Cap or reject deep PROPFIND at the proxy if the package does not.client_max_body_size and proxy timeouts deliberately.Failure modes
PROPFIND → inconsistent or truncated multi-status responses.Depth/Destination/MS-Author-Via → clients appear to "not support" the share with no server-side error.Ramp-up
/docs/ lowers initial cost, and the explicit extension contracts shorten the "how do I customize this?" phase compared to override-based packages.How can I help you explore Laravel packages today?