Generate typed rows
For generated CSV/XLSX, parts may contain row objects or positional arrays instead of serialized bytes.writeMode independently from uploadMode:
staged is the safer default for ordinary multi-request writers. Structured direct is for a fixed layout and rejects undeclared worksheets or cell-oriented XLSX parts.
Compute timing
The declared schema is honored in every compute mode:
CSV, TSV, and XLSX sessions default to
sync. Set the mode explicitly when the next workflow has a strict latency or readiness requirement.
Read the typed result
sheet to use the first visible XLSX worksheet. Omit columns to read every source column. The read-time columns option projects, renames, or casts a result; it does not replace the schema declared on the upload session.
Use storage.walkFileData() for a complete structured scan without accumulating every row in memory. Record mode accepts CSV/TSV, XLSX, NDJSON/JSONL, a top-level JSON array, and record-oriented XML. It does not walk arbitrary plain text, a top-level JSON object, or binary files as rows; explicit mode: 'lines' handles text windows separately. For XML, pass recordPath; for XLSX, select a worksheet with sheet or use the first visible one. The callback is awaited for each batch; omitting take scans all records.
Other structured formats
getFileData() and walkFileData() also support NDJSON/JSONL, JSON arrays, and record-oriented XML. These formats use their native record structure rather than the CSV/TSV/XLSX sheets[].table.columns[] upload schema. XML reads and walks require recordPath.
Continue with storage structured files.
