The carried files shown as a portfolio
Say how reading software lays the carried files out: the columns, what each file puts in them, the order, and which file opens first.
Summary
A document can carry whole files inside it, and reading software given no more than that shows a list of file names — which says nothing about which one came in when, or for how much. Here you give the table instead: the columns a person reads across the top, what each carried file puts in each of them, the column the rows are ordered on, and the file that opens first. Three columns need nothing stated at all, because they are read off the file itself: the name it is attached under, what it is in words, when it was last changed and how many bytes it holds.
Technically
Written at the top level of a request, under
"collection"
collection writes the /Collection of the document, its /Schema of columns and its /Sort, and each attachment's own values reach the file as the /CI beside its file specification. The files a collection holds are the ones attachments carried and no others. A column ties itself to the value a file states through key, which nobody is shown; data says what the column holds, and the four kinds read off the attachment itself — file_name, description, modified, size — take no value from the file, so nothing can disagree with it. A moment is stated in ISO 8601, as every moment of the schema is, and reaches the file written the way PDF writes one. A sort naming a key no column carries is not refused: reading software then orders the rows as it sees fit. The declaration raises the version the document announces to 1.7.
Request schema
-
collection— object, optional. Absent leaves the carried files a bare list of names. -
collection.view— string, optional,rowsby default. One ofrows(each file on a row of its own),tiles(each as a small picture) andhidden(nothing shown until the reader asks). -
collection.opens_on— string, optional. The file opened first, by the name it is attached under. Absent opens on the document itself, and a name no attachment carries is not refused. -
collection.columns— array, optional. The columns of the table, in the order they stand. -
columns[].key— string, required. What ties the column to the value a file states for it. Nobody is shown it. -
columns[].title— string, required. The heading a person reads. -
columns[].data— string, required. One oftext,dateandnumber, which the file states, andfile_name,description,modifiedandsize, which are read off the attachment. -
columns[].hidden— boolean, optional, false by default. Whether the column stays out of sight until the reader asks for it. -
collection.sort— object, optional.key, the column the rows are ordered on, andascending, whether the order runs up. Both required as soon as the object is there. -
attachments[].columns— array, optional. What one file states, one entry per column:key, and the value under the kind that column holds —text,dateornumber.
Scope: the whole document. attachments is what carries the files; this only says how they are laid out.
A whole request that creates a PDF
{
"attachments": [
{
"name": "lot_a",
"file_name": "lot-a.xml",
"description": "Earthworks and site clearance",
"media_type": "text/xml",
"relationship": "source",
"modified": "2026-07-14T09:30:00+02:00",
"columns": [
{ "key": "lot", "text": "Earthworks and site clearance" },
{ "key": "sent", "date": "2026-07-14T09:30:00+02:00" },
{ "key": "total", "number": 18400 }
]
}
],
"collection": {
"view": "rows",
"opens_on": "lot_a",
"columns": [
{ "key": "lot", "title": "Lot", "data": "text" },
{ "key": "sent", "title": "Sent", "data": "date" },
{ "key": "total", "title": "Total", "data": "number" },
{ "key": "weight", "title": "Bytes", "data": "size", "hidden": true }
],
"sort": { "key": "sent", "ascending": false }
},
"standard_fonts": [{ "name": "sans", "face": "helvetica" }],
"items": [
{
"type": "text",
"rect": { "llx": 72, "lly": 700, "urx": 523, "ury": 740 },
"content": ["Tender pack: the lots travel inside this document"],
"font": "sans",
"font_size": 12
}
]
}
The document as a whole
The numbers reading software shows A hundred letters in a single file What the document says about itself The notes a program leaves in the file for itself The notes a program leaves on one page A file still readable decades from now The print standard the document claims The password that opens it, and what may be done with it An invoice a person and a machine both read The address relative links are read against The PDF version the file declares What a picture says about itself, and how it is read The attachments the document carries beside its pages Which attachments a page claims The identity card a single page carries The accessibility standard the document claims The standards the finished document is measured against
Where to go next
Every JSON key of a request, in one page The other forty-one settings of a request