|
| 1 | +--- |
| 2 | +title: Fix X-NC-WebDAV-AutoMkcol header name in WebDAV client API docs |
| 3 | +date: 2026-08-07 |
| 4 | +artifact_contract: ce-unified-plan/v1 |
| 5 | +artifact_readiness: implementation-ready |
| 6 | +execution: code |
| 7 | +product_contract_source: ce-plan-bootstrap |
| 8 | +origin: issue #15365 (https://github.com/nextcloud/documentation/issues/15365) |
| 9 | +depth: lightweight |
| 10 | +settled_decision_conflicts: [] |
| 11 | +--- |
| 12 | + |
| 13 | +# Fix X-NC-WebDAV-AutoMkcol header name in WebDAV client API docs |
| 14 | + |
| 15 | +## Problem Frame |
| 16 | + |
| 17 | +The developer manual documents the optional upload header as |
| 18 | +`X-NC-WebDAV-AutoMkcol` in `developer_manual/client_apis/WebDAV/basic.rst` |
| 19 | +at two places (lines 111 and 615). The Nextcloud server reads |
| 20 | +`X-NC-WebDAV-Auto-Mkcol` (with a second hyphen) in |
| 21 | +`apps/dav/lib/Upload/UploadAutoMkcolPlugin.php` (line 41 of nextcloud/server |
| 22 | +master). Clients following the documentation send the wrong header and |
| 23 | +receive a 403 on uploads that should auto-create parent directories. |
| 24 | + |
| 25 | +## Requirements |
| 26 | + |
| 27 | +- R1. Rename the header from `X-NC-WebDAV-AutoMkcol` to |
| 28 | + `X-NC-WebDAV-Auto-Mkcol` in both occurrences in |
| 29 | + `developer_manual/client_apis/WebDAV/basic.rst`. |
| 30 | +- R2. No other file in the repository may contain the misspelled |
| 31 | + `AutoMkcol` variant after the change (verified by repository-wide grep). |
| 32 | +- R3. The fix is documentation-only; no source code of this repository |
| 33 | + changes, and no server-side behavior is proposed or requested. |
| 34 | + |
| 35 | +## Scope Boundary |
| 36 | + |
| 37 | +In scope: the two header-name occurrences in `basic.rst`. |
| 38 | + |
| 39 | +Out of scope: |
| 40 | +- Any change to server code (the server name is canonical). |
| 41 | +- Reformatting or rewording the affected tables beyond the header name. |
| 42 | +- Other documented headers or WebDAV endpoint behavior. |
| 43 | + |
| 44 | +## Key Technical Decisions |
| 45 | + |
| 46 | +- KTD-1 (user-directed): use `X-NC-WebDAV-Auto-Mkcol` as the corrected name. |
| 47 | + Rejected alternative: keeping `AutoMkcol` — the server's |
| 48 | + `UploadAutoMkcolPlugin` checks `X-NC-WebDAV-Auto-Mkcol`; the docs are |
| 49 | + wrong, not the server. Evidence: nextcloud/server |
| 50 | + `apps/dav/lib/Upload/UploadAutoMkcolPlugin.php:41`. |
| 51 | + |
| 52 | +## Assumptions |
| 53 | + |
| 54 | +- The server-side header name remains stable for the current and upcoming |
| 55 | + documented versions (the plugin line was verified on server master). |
| 56 | +- The reporter's observed 403 was caused by the header mismatch; the fix |
| 57 | + aligns docs with server behavior. |
| 58 | + |
| 59 | +## Implementation Units |
| 60 | + |
| 61 | +### U-1 Rename header in WebDAV request-headers table |
| 62 | + |
| 63 | +Files: `developer_manual/client_apis/WebDAV/basic.rst` |
| 64 | + |
| 65 | +- Line 111 (PUT row in the request-methods table): replace |
| 66 | + ``X-NC-WebDAV-AutoMkcol`` with ``X-NC-WebDAV-Auto-Mkcol`` inside the |
| 67 | + existing literal markup, keeping the table cell width intact. |
| 68 | +- Line 615 (request-headers table row): replace the header cell |
| 69 | + ``X-NC-WebDAV-AutoMkcol`` with ``X-NC-WebDAV-Auto-Mkcol`` and widen the |
| 70 | + first table column to fit the longer name, keeping the RST grid-table |
| 71 | + borders aligned (re-run `sphinx-build`/`rst-lint` equivalent check or |
| 72 | + visually verify the table renders). |
| 73 | + |
| 74 | +Verification: |
| 75 | +1. Repository-wide grep for `AutoMkcol` (excluding the hyphenated variant) |
| 76 | + returns zero matches. |
| 77 | +2. Grep confirms both `X-NC-WebDAV-Auto-Mkcol` occurrences exist at the |
| 78 | + expected lines. |
| 79 | +3. RST table structure remains valid (grid-table column widths consistent; |
| 80 | + doc build succeeds or cell borders line up). |
| 81 | + |
| 82 | +## Dependencies and Sequencing |
| 83 | + |
| 84 | +Single unit; no ordering constraints. |
| 85 | + |
| 86 | +## Risks |
| 87 | + |
| 88 | +- RST grid tables break silently when column widths are edited |
| 89 | + incorrectly — mitigation is the table-validity check in U-1 verification. |
0 commit comments