The manifest file defines a release to the Thistle Update Client. Manifests are typically handled and amended by the Thistle Release Helper.

All fields are strings aside from version, which is an unsigned integer.

Example manifest

{
  "comment": "release matching internal commit ab245ef1",
  "id": "01G9CPEVZN3KWEJSDR3YRB6TEY",
  "ts": "1659357610.1366699",
  "version": 1,
  "name": "mymanifest",
  "signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHJzaWduIHNlY3JldCBrZXk...",
  "pre_install": null,
  "post_install": null,
  "rootfs": null,
  "files": [{
      "name": "a",
      "install_location": "/opt/application",
      "download_location": "https://xxx.ota.thistlesec.net/8a045f82696d69147e2274492723eabb",
      "hash": "17c7c37227ff424637817217e7155cee1a9a732c59b2798dcceff46722d9992e",
      "pre_install": null,
      "post_install": null
  }],
}

Manifest fields

NameDescription
nameName of the release
idId of the release (ulid form)
tsTimestamp of last modification (seconds since epoch)
versionCurrent release number
commentFree form comment
signatureSignature of this manifest
pre_installCommand to run before the installation of this manifest. Note: a failure of this script will revert any installed asset
post_installCommand to run after the installation of this manifest. Note: a failure of this script will revert any installed asset
post_rebootCommand to run after rebooting the device following the installation of this manifest. Note: a failure of this script will revert any installed asset and issue another reboot
rootfsRootfs (specified below)
filesArray of files (specified below)

File fields

NameDescription
nameFilename
install_locationInstall destination on device
download_locationDownload source URL
hashHash of the compressed file
pre_installCommand to run before the installation of this file. Note: a failure of this script will revert any installed asset
post_installCommand to run after the installation of this file. Note: a failure of this script will revert any installed asset

Rootfs fields

NameDescription
nameImage name
download_locationDownload source URL
hashHash of the compressed rootfs image
pre_installCommand to run before the installation of this image. Note: a failure of this script will revert any installed asset
post_installCommand to run after the installation of this image. Note: a failure of this script will revert any installed asset

Manual manifest fetching

If you prefer to fetch the update manifest manually, you can do so with the following command. This can be useful if you want to use a customized update client. The ID and Token defined in the command below are the obtained at the end of the device provisioning process.

$ curl -H "Thistle-Device-ID: $DEVICE_ID" \
     -H "Authorization: Bearer $DEVICE_TOKEN" \
     https://device.thistle.tech/manifest