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
signaturefield 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:
- Update bundles:
.app.tar.gz(macOS),.AppImage.tar.gz,.nsis.zip,.msi.zip(Tauri v1) - 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\"}"'
Related reading
- Updaters Support — overview of all updater types.
- Tauri example app —
@tauri-apps/plugin-updaterwired to FaynoSync. - Velopack — another cross-platform desktop updater with delta updates.