コマンド・スコープ Command Scopes
「スコープ」(適用範囲)とは、Tauri コマンドに許可される振る舞い(または許可されない振る舞い)の範囲を細かく定義するものです。
「スコープ」は「許可 allow スコープ」と「拒否 deny スコープ」に分類され、「拒否スコープ」は常に「許可スコープ」よりも優先されます。
この「スコープの型」は、Rust のデータ変換フレームワーク serde の「serializable タイプ」(シリアライザブル/直列化可能型)に変換できる型である必要があります。
このような型は通常、プラグイン毎に個別に定義されています。Tauri アプリケーションに実装されるスコープ付きコマンドの場合では、スコープの型はアプリケーションで定義してコマンド実装で適用する必要があります。
たとえば、「Fs プラグイン」では特定のディレクトリとファイルを「許可」または「拒否」できるスコープを利用でき、「http プラグイン」ではアクセスが「許可」される URL をフィルタリングするようにスコープを使用できます。
「スコープ」はコマンドに渡され、取り扱いや適切な適用についてはコマンド自身が実装します。
以下の事例は、「Fs プラグイン」の「アクセス権 permissions」に基づくものです:
すべてのコマンドに対するこのプラグインの「スコープの型」は文字列型で、これには glob 互換のパスが含まれます。
[[permission]]identifier = "scope-applocaldata-recursive"description = '''This scope recursive access to the complete `$APPLOCALDATA` folder,including sub directories and files.'''// '''このスコープ(適用範囲)は、サブディレクトリとファイルを含む全 `$APPLOCALDATA` フォルダへの再帰アクセスを許可するものです。'''
[[permission.scope.allow]]path = "$APPLOCALDATA/**"《次の事例の「description」部分は、Linux 用(前半部分)と Windows 用(後半部分)の記述に分かれていますが内容は同一ですので、以下の訳文では「Wondows」用の部分を〔 〕内で併記しています。読み替えてください。》
[[permission]]identifier = "deny-webview-data-linux"description = '''This denies read access to the`$APPLOCALDATA` folder on linux as the webview data andconfiguration values are stored here.Allowing access can lead to sensitive information disclosure andshould be well considered.'''// '''この設定は、Linux 上〔Windows 上〕の `$APPLOCALDATA`〔$APPLOCALDATA/EBWebView/〕フォルダへの読み取りアクセスが「拒否」されます。これは、WebView のデータと設定値がここに保存されているためです。アクセスを「許可」すると機密情報の漏洩につながる可能性があるため、慎重に検討する必要があります。'''platforms = ["linux"]
[[permission.scope.deny]]path = "$APPLOCALDATA/**"
[[permission]]identifier = "deny-webview-data-windows"description = '''This denies read access to the`$APPLOCALDATA/EBWebView` folder on windows as the webview data andconfiguration values are stored here.Allowing access can lead to sensitive information disclosure andshould be well considered.'''platforms = ["windows"]
[[permission.scope.deny]]path = "$APPLOCALDATA/EBWebView/**"上記の二つのスコープを使用すると、機密性の高い WebView データが含まれる Windows 上の EBWebView サブフォルダへのアクセスを防止しながら、APPLOCALDATA フォルダへのアクセスを許可できます。
これらをひとつのセットに統合することで、重複する構成が削減され、アプリケーション設定を調べる人にとって理解しやすくなります。
まず、「拒否」スコープが deny-default にマージされます:
[[set]]identifier = "deny-default"description = '''This denies access to dangerous Tauri relevant files andfolders by default.'''// '''これにより、危険な Tauri 関連ファイルおよびフォルダへのアクセスがデフォルトで「拒否」されます。'''permissions = ["deny-webview-data-linux", "deny-webview-data-windows"]その後、「拒否」スコープと「許可」スコープがマージされます:
[[set]]identifier = "scope-applocaldata-reasonable"description = '''This scope set allows access to the `APPLOCALDATA` folder andsubfolders except for linux,while it denies access to dangerous Tauri relevant files andfolders by default on windows.'''// '''このスコープ・セットは、Linux を除いて `APPLOCALDATA` フォルダーとサブフォルダーへのアクセスを「許可」しますが、その一方で、Windows では危険な Tauri 関連ファイルとフォルダーへのアクセスをデフォルトで「拒否」します。'''permissions = ["scope-applocaldata-recursive", "deny-default"]このような「スコープ」は、プラグインのグローバル・スコープを拡張することによりすべてのコマンドに使用することも、「アクセス権 permission」内で有効化されたコマンドと組み合わせて使用される場合には選択されたコマンドのみに使用することもできます。
APPLOCALDATA 内のファイルへの適切な「読み取り専用ファイル・アクセス」の設定は次のようになります:
[[set]]identifier = "read-files-applocaldata"description = '''This set allows file read access to the `APPLOCALDATA` folder andsubfolders except for linux,while it denies access to dangerous Tauri relevant files andfolders by default on windows.'''// '''このセットは、Linux を除いて `APPLOCALDATA` フォルダとサブフォルダへのファイル読み取りアクセスを「許可」しますが、その一方で、Windows では危険な Tauri 関連ファイルとフォルダへのアクセスをデフォルトで「拒否」します。'''permissions = ["scope-applocaldata-reasonable", "allow-read-file"]上記の各事例は、「スコープ」の機能自体を強調するためのものです。プラグインまたはアプリケーションの各開発者は、ユース・ケース(利用者の機能要求)に応じて適切なスコープの組み合わせを検討する必要があります。
【※ この日本語版は、「Sep 9, 2026 英語版」に基づいています】
© 2026 Tauri Contributors. CC-BY / MIT