Skip to main content
Teardowns have four named “slots” alongside the generic documents[] array: These are dedicated tiles on the teardown detail page. Uploading to a slot also appends the URL to the generic documents[] array so it appears both in the slot card AND in the “Documents” section.

Upload to a slot

Path parameters

string
required
One of harvest-list, occm, aircraft-details, non-incident-statement. URL-safe hyphens; the DB column has underscores (we translate).
string (UUID)
required

Headers

string
required
Bearer tdao_live_…
string
required
string
required
multipart/form-data

Form fields

file
required
The file to upload.
string (CSV)
Optional. Same shape as the generic-document audience field. See audience.

File rules

Same as the generic document upload max 50 MB, PDF / XLSX / XLS / DOCX / DOC / CSV / images.

What it writes

  1. The matching column on the teardown row is set to the new URL (overwriting any previous slot value).
  2. The URL is also appended to teardowns.documents[].
  3. If audience was sent and is different from the teardown’s current audience, it’s applied + audited.
  4. The file lands in storage at teardowns/<teardown_id>/<doc_type>/<8-hex>_<filename>.
Replacing a slot does NOT delete the previous slot’s storage file the previous URL remains in documents[] until you delete it explicitly. (Most partners run a Clear → Upload sequence.)

Response

200 OK:

Clear a slot

Single call that, in one transaction:
  1. Sets the named column on the teardown to NULL (the UI slot card becomes blank).
  2. Removes the URL from teardowns.documents[].
  3. Best-effort deletes the underlying storage file.
Idempotent calling against an already-empty slot returns 200 {"status": "ok"} without writing anything.

Path parameters

string
required
Same as upload harvest-list / occm / aircraft-details / non-incident-statement.
string (UUID)
required

Response

200 OK:

Audit trail

Each slot upload writes one audit row:
  • teardown.harvest_list.uploaded (or the matching field name) with metadata containing filename, size, URL.
Each slot delete writes:
  • teardown.harvest_list.removed (or the matching field name) with metadata containing the removed URL.

See also

  • Teardown documents for the generic (non-slot) document endpoints.
  • Audience for the visibility behaviour of the optional audience form field.