Import and export

Nothing in KF is a dead end. Everything you put in comes back out in a format something else can read, and the formats people already have — spreadsheets, bills of material — come in without retyping.

Import

Three formats, chosen by file extension:

ExtensionWhat it is
.csvA spreadsheet export. The usual way to bring in a BOM or a requirement list
.xlsxAn Excel workbook, read directly
.tgz / .gzA KF pack — items and their attachments, as produced by Export all

The CSV columns

Only title is mandatory. Everything else is optional, and any column KF does not recognise is kept as a declared attribute rather than discarded.

ColumnBecomes
titleThe item's title
codeIts code (x0) — the durable key. An existing code updates that item instead of creating a new one
classm object, a action, e event, i document
tagsSpace-separated tags, including status words like done
typeOne or more codes, separated by space, comma or ``. Each becomes a type link
docThe Markdown body
anything elseA declared attribute, reachable through the API and shown on the item

That code rule is the useful one: exporting a BOM, editing it in a spreadsheet, and importing it back updates rather than duplicates.

Hierarchy in a flat file

A CSV is flat and a BOM is not. Two markers solve it:

  • > descends — the next rows hang under the row just created
  • < goes back up a level

So a nested assembly imports from one sheet, in the order a person would naturally write it.

Export

FormatWhat you get
CSVThe FMEA table; the compliance register; any listing
XLSXThe FMEA table; the compliance register
JSONA whole subtree — {root, items[], links[]}
OGDLThe same subtree in KF's own format
TGZ packItems and their attachments, for moving a body of work between instances
SVGFault tree, component tree, type tree, Gantt
MS Project XMLThe Gantt, as a genuine schemas.microsoft.com/project file
iCalendarTasks as calendar events (RFC 5545)
PDFThrough the print views — A4 portrait, A4 landscape, slides, handouts

Every CSV and XLSX export carries a provenance header: which database, which build, which filter produced it, and when. A spreadsheet that has been emailed twice and renamed once can still say where it came from.

What this is for

Two cases come up constantly.

Round-tripping a BOM. Export the component tree as CSV, work on it in the tool your supplier sent it in, import it back. Codes make it an update.

Handing over evidence. An auditor wants the register in their own file, sorted their own way. Register CSV gives them that, with the provenance header attached, so what they examined is demonstrable months later rather than only during the meeting. See auditing.