Guides users through configuring Tauri plugin permissions, capabilities, and security. Covers platform-specific capabilities, window-targeted permissions, using official and community plugin permissions, and writing custom plugin permissions with scopes.
Guides users through configuring Tauri plugin permissions, capabilities, and security. Covers platform-specific capabilities, window-targeted permissions, using official and community plugin permissions, and writing custom plugin permissions with scopes.
Managing Tauri Plugin Permissions
Tauri's capability and permission system provides granular security control for desktop and mobile applications. This skill covers configuring capabilities for windows and platforms, using plugin permissions effectively, and writing custom plugin permissions.
Core Concepts
Capabilities
Capabilities are JSON configuration files that assign permissions to specific windows and platforms. They follow the principle of least privilege.
Restrict capabilities to specific operating systems using the platforms field:
{"identifier":"desktop-fs-access","description":"Filesystem access for desktop platforms","windows":["main"],"permissions":["fs:allow-home-read"],"platforms":["linux","windows","macos"]}
Available platforms: linux, windows, macos, android, ios
Mobile-Only Capabilities
{"identifier":"mobile-camera","description":"Camera access for mobile devices","windows":["main"],"permissions":["camera:allow-capture"],"platforms":["android","ios"]}
Create separate capability files for each window's needs:
src-tauri/capabilities/main-window.json:
{"identifier":"main-window-capabilities","description":"Full access for main window","local":true,"windows":["main"],"permissions":["fs:allow-home-read","fs:allow-home-write","dialog:allow-open","dialog:allow-save"]}
src-tauri/capabilities/settings-window.json:
{"identifier":"settings-window-capabilities","description":"Limited access for settings window","local":true,"windows":["settings"],"permissions":["fs:allow-app-read","fs:allow-app-write"]}
Shared Capabilities Across Windows
{"identifier":"shared-dialog","description":"Dialog access for multiple windows","local":true,"windows":["main","settings"],"permissions":["dialog:allow-ask","dialog:allow-message"]}
Using Plugin Permissions
Default Permission Sets
Every plugin provides a default permission set with baseline access. Enable it with:
{"permissions":["plugin-name:default"]}
Finding Available Permissions
Official plugins: Check Tauri documentation's permission tables
Plugin source: Look in permissions/autogenerated directories
Community plugins: Check repository or crates.io page