Skip to content

Commit 0ad8ebc

Browse files
committed
docs(ce-work): checkpoint selected implementation plan
1 parent e376814 commit 0ad8ebc

1 file changed

Lines changed: 89 additions & 0 deletions

File tree

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
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

Comments
 (0)