docs(content-drive): add backend and frontend specs for bulk file upload (#37166) - #37346
Conversation
|
Claude finished @dario-daza's task in 1m 6s —— View job Spec review: bulk file upload (backend + frontend)Both documents are spec-only (no code). I reviewed them for internal consistency, cross-document contract alignment, and completeness against the Round 2 changes described in the PR body. Contract alignment is solid. The backend
New Issues
Minor
Nothing blocking. The spec pair is unusually complete for altitude — the deliberately-deferred submission format (field names / endpoint / handle shape, left to • branch |
This PR fixes the unverified commit signing in #37300.
Spec-Kit specifications for Content Drive bulk file upload. Content Drive accepts a multi-file selection today, warns that only one file will be uploaded, and discards the rest.
This PR carries both halves of the specification, one document each, written by the developer building that half:
specs/37166-bulk-file-upload/spec.mdspecs/37166-bulk-file-upload-frontend/spec.mdThey are reviewed together because they meet at one contract and neither is complete without it. The backend spec defines it in "Contract Consumed by the Client" (C-001 to C-006); the frontend spec restates it from the consumer's side in "Contract Consumed", so the boundary is reviewable from either document. The implementation of each half lands in its own separate PR.
Backend spec: decisions recorded
Directory upload and creating a missing target folder stay out of scope, as #37166 specifies.
Frontend spec: six required stories plus one optional
multipleattribute today, so only drag-and-drop delivers a batch; the premise that a multi-file selection already reaches the client held for the drop path only.Per-row in-flight marking and bulk reindex's reporting are documented as out of scope, with reasons.
Review rounds
Two rounds so far, threaded on this PR rather than restated item by item here.
Round 2 (@fabrizzio-dotCMS) changed the shape of the work in three places:
Plus one correction spanning both documents: C-006 summarised the completion signal and the durable record as carrying "the run's counts", while FR-014 to FR-016 record counts and the per-file results with a reason each. A plan trusting the summary would have shipped a counts-only notification, leaving an author who stepped away with "27 of 30 created" and no way to learn which three failed. Corrected in both specs, with FR-020 pinning what "the outcome" means there and the frontend's FR-023 / FR-023a covering the transient and durable surfaces alike.
Proposed Changes
specs/37166-bulk-file-upload/spec.md, the backend spec: the batch-upload contract, limits, outcome shape, and notification behavior.specs/37166-bulk-file-upload-frontend/spec.md, the frontend spec: consuming that contract, and unifying how Content Drive reports work in progress and its outcomes.#37062/#37063ticket references. Round 2 is summarised above.Checklist
/speckit-plan) once these specs are approved.Additional Info
This is PR 1 of the Spec-Kit flow (spec only). Approval here unblocks
/speckit-plan→/speckit-tasks→/speckit-implementfor both halves. No code changes are included.One item is deliberately left for planning: the concrete submission format (field names, endpoint, and the shape of the handle) is not pinned in either spec, which state the boundary at behavior altitude. It must be agreed between the two halves and recorded under
specs/*/contracts/, sinceplan.mdis gitignored in this repo and an agreement recorded there would not survive.Screenshots
Not applicable — this PR only adds specification documents, no UI or behavior changes.
This PR fixes: #37166
This PR fixes: #37166