Lucas Fernandes Nogueira 3a9000177c fix(fs): resolve symlinks of missing paths before checking the scope (#3627)
In plugins/fs/src/commands.rs resolve_path / is_forbidden, only paths
that already existed were canonicalized, so a new file below a symlinked
directory in the scope was matched by its unresolved path and written
outside of the scope. Relative symlink targets were resolved against the
process CWD, only the link target was checked against deny patterns, and
resolution errors made is_forbidden fail open.

resolve_path now computes the real path (canonical nearest existing
ancestor + remaining components, following dangling symlinks relative to
their parent, bounded to 40 links) and checks it against the allow and deny
patterns; deny patterns also match the path as given. Resolution errors
fail closed. Unit tests cover symlinked ancestors, relative and dangling
links and loops.
2026-10-09 13:21:34 -03:00
2026-09-01 17:38:21 +08:00
2026-09-30 17:56:45 -03:00
2022-12-14 18:54:05 +01:00
2022-12-14 18:54:05 +01:00
2022-12-14 18:54:05 +01:00
2026-10-09 09:40:26 -03:00
2026-09-26 14:46:48 -03:00

Official Tauri Plugins

This repo and all plugins require a Rust version of at least 1.90

Plugins Found Here

Win Mac Lin iOS And
autostart Automatically launch your app at system startup. ✅ ✅ ✅ ❌ ❌
barcode-scanner Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. ? ? ? ✅ ✅
biometric Prompt the user for biometric authentication on Android and iOS. ? ? ? ✅ ✅
cli Parse arguments from your Command Line Interface ✅ ✅ ✅ ❌ ❌
clipboard-manager Read and write to the system clipboard. ✅ ✅ ✅ ✅ ✅
deep-link Set your Tauri application as the default handler for an URL. ✅ ✅ ✅ ✅ ✅
dialog Native system dialogs for opening and saving files along with message dialogs. ✅ ✅ ✅ ✅ ✅
fs Access the file system. ✅ ✅ ✅ ? ?
geolocation Get and track current device position. ? ? ? ✅ ✅
global-shortcut Register global shortcuts. ✅ ✅ ✅ ? ?
haptics Haptic feedback and vibrations. ? ? ? ✅ ✅
http Access the HTTP client written in Rust. ✅ ✅ ✅ ✅ ✅
localhost Use a localhost server in production apps. ✅ ✅ ✅ ? ?
log Configurable logging. ✅ ✅ ✅ ✅ ✅
nfc Read and write NFC tags on Android and iOS. ? ? ? ✅ ✅
notification Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. ✅ ✅ ✅ ✅ ✅
opener Open files and URLs using their default application. ✅ ✅ ✅ ✅ ✅
os Read information about the operating system. ✅ ✅ ✅ ✅ ✅
persisted-scope Persist runtime scope changes on the filesystem. ✅ ✅ ✅ ? ?
positioner Move windows to common locations. ✅ ✅ ✅ ❌ ❌
process This plugin provides APIs to access the current process. To spawn child processes, see the shell plugin. ✅ ✅ ✅ ? ?
shell Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. ✅ ✅ ✅ ? ?
single-instance Ensure a single instance of your tauri app is running. ✅ ✅ ✅ ❌ ❌
sql Interface with SQL databases. ✅ ✅ ✅ ✅ ✅
store Persistent key value storage. ✅ ✅ ✅ ✅ ✅
stronghold Encrypted, secure database. ✅ ✅ ✅ ? ?
updater In-app updates for Tauri applications. ✅ ✅ ✅ ❌ ❌
upload Tauri plugin for file uploads through HTTP. ✅ ✅ ✅ ✅ ✅
websocket Open a WebSocket connection using a Rust client in JS. ✅ ✅ ✅ ? ?
window-state Persist window sizes and positions. ✅ ✅ ✅ ❌ ❌
  • ✅: (Partially) Supported
  • ❌: Not supported
  • ? : Unknown/Untested or Planned

Contributing

PRs accepted. Please make sure to read the Contributing Guide before making a pull request.

Partners

CrabNebula

For the complete list of sponsors please visit our website and Open Collective.

Languages
Rust 57.2%
TypeScript 25.2%
Kotlin 9.4%
Swift 5.8%
JavaScript 1.5%
Other 0.8%