Skip to main content

Xylok Archive Format Details

The internal archive format is used for data transfer in and out of Xylok. These archives work both as backups for a single Xylok instance and are transferable between instances, allowing a client or automatic analysis data to be copied between servers.

Low-Level Use Cases

Generally the archive format is used internally by Xylok and the end user does not need to work with the low-level details of the format. However, there are cases where working with the format may be useful:

  • Programmatically modifying scan(s) in a client
  • Creating machines and locations based on an outside data source (Active Directory, spreadsheets, etc)
  • Altering automatic analysis data before importing into a new instance

Database Definition

Xylok archives consist of a SQLite 3 database optionally wrapped inside a ZIP file. If wrapped in a ZIP, the database file itself must be named xylok-content.sqlite3.

The latest DDL for the archive format can be found on the Xylok server. This DDL does not deeply specify foreign keys to keep the format simple, but column names should make the table relationships understandable.

Because the format changes over time, all archives should include a version specifier in the xylok table. At the time of this writing the current version number is inserted near the top of the archive format DDL. Beyond this, it is recommended you export an existing client/scan as a reference if manually creating or modifying your own archives.

Sample Code

The Python used internally by Xylok to export and import the archive format and the DDL SQL file are downloadable from the Xylok server. This Python serves as a reference for your own code, but cannot be directly used as it imports other internal files.