Skip to main content

Tauri

Supports Tauri applications with built-in updater functionality, including cryptographic signature verification.

Key Features​

  • Compatible with Tauri's built-in updater.
  • Supports cryptographic signature verification.
  • Returns a standard JSON response format with download URLs.
  • Requires a signature field for security validation.

Signature Requirement​

The Tauri updater requires cryptographic signatures for update verification. When uploading Tauri applications you must include a signature field in the upload request. This signature is generated by Tauri's build process and ensures update integrity and authenticity.

Checking for Updates​

curl -X GET 'http://localhost:9000/checkVersion?app_name=myapp&version=1.0.0&channel=stable&platform=darwin&arch=amd64&owner=admin&updater=tauri'

The response is a standard JSON payload with download URLs plus the signature information the Tauri updater expects.

Which File the Updater Receives​

A version can hold more than the update bundle — for example a .dmg next to myapp.app.tar.gz, so that /apps/latest has an installer for your download page. /checkVersion always returns the file the Tauri updater can install, in this order:

  1. Update bundles: .app.tar.gz (macOS), .AppImage.tar.gz, .nsis.zip, .msi.zip (Tauri v1)
  2. Installers the Tauri v2 updater installs directly: .exe, .msi, .AppImage

.sig and .dmg files are never returned as url — the Tauri updater cannot install them. If a version has nothing the updater can install for the requested platform and architecture (for example only a .dmg), /checkVersion answers 204 No Content, which Tauri treats as "no update". Pass the bundle's signature as the signature parameter (cat myapp.app.tar.gz.sig), not as a file; it is stored for every file of that upload, so upload the bundle and any installers for your download page in the same request.

/apps/latest works the other way round: it leaves out the update bundles and .sig files, and returns only the installers.

Upload with the updater Parameter​

curl -X POST --location 'http://localhost:9000/upload' \
--header 'Authorization: Bearer <jwt_token>' \
--form 'file=@"/path_to_file/myapp.app.tar.gz"' \
--form 'data="{\"app_name\":\"myapp\",\"version\":\"1.0.0\",\"channel\":\"stable\",\"publish\":true,\"platform\":\"darwin\",\"arch\":\"amd64\",\"updater\":\"tauri\",\"signature\":\"dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVUUzIzUGJLcHpQNHdCVEJzTXJjbWFhUUdUVEtaUGRLdGhWdGZJZkF2VmM0TzJGMkdPQUk4V1hzYWJuUUhWbWI2cTFWTkhEZE9lbkVwUERCQmhRPT0K\",\"changelog\":\"### Changelog\\n\\n- Added new feature X\\n- Fixed bug Y\"}"'