Your archive, in an open ZIP.
Service Folio archive v1 is a store-only ZIP file with a .servicefolio extension. It contains the complete library JSON, its attachments, a format note, and a manifest of SHA-256 checksums.
This page documents archive version 1, the format Service Folio 1.0 writes and reads. It does not promise compatibility with future versions of the app.
Files in the archive
manifest.json library.json README.txt attachments/<receipt UUID>
Each attachment filename is its receipt UUID, without a file extension. The receipt’s type, original name, byte size, and SHA-256 are recorded in library.json. Version 1 accepts PDF, JPEG, PNG, and HEIC receipt files.
Manifest fields
The manifest identifies the archive format and version, gives its creation time and record counts, lists the size and SHA-256 digest for every file except manifest.json, and includes a digest of that file list.
{
"format": "folio.archive",
"formatVersion": 1,
"schemaVersion": 1,
"archiveID": "UUID",
"createdAt": "ISO 8601 timestamp",
"vehicles": 1,
"events": 2,
"readings": 1,
"reminders": 1,
"attachments": 1,
"files": [
{ "path": "README.txt", "size": 190, "sha256": "64 lowercase hex characters" },
{ "path": "attachments/UUID", "size": 2048, "sha256": "64 lowercase hex characters" },
{ "path": "library.json", "size": 8192, "sha256": "64 lowercase hex characters" }
],
"contentDigest": "64 lowercase hex characters"
}
The file list is sorted by path when its digest is calculated. Each line is path:sha256; lines are joined with a newline and SHA-256 hashed. The manifest itself is excluded from that digest so it does not hash itself.
Limits and verification
- Archive size: at most 512 MiB.
- Each receipt: at most 25,000,000 bytes.
- The ZIP uses stored entries without compression. Unsupported ZIP features, unsafe paths, duplicate entries, missing files, and extra files are rejected.
- Record dates are calendar dates in
YYYY-MM-DDform. Money values are decimal strings with a currency code; odometer values keep their entered unit.
SHA-256 checksums can detect accidental corruption or changes since export. They do not identify the author or prove that a record is true, signed, or certified.
On restore, Service Folio checks the archive and its references before applying it. Review the records in the app before restoring an archive you received from someone else.