{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Config", "description": "The config type mapped to `tauri.conf.json`.", "type": "object", "properties": { "build": { "description": "The build configuration.", "default": { "devPath": "http://localhost:8080/", "distDir": "../dist", "withGlobalTauri": false }, "allOf": [ { "$ref": "#/definitions/BuildConfig" } ] }, "package": { "description": "Package settings.", "default": { "productName": null, "version": null }, "allOf": [ { "$ref": "#/definitions/PackageConfig" } ] }, "plugins": { "description": "The plugins config.", "default": {}, "allOf": [ { "$ref": "#/definitions/PluginConfig" } ] }, "tauri": { "description": "The Tauri configuration.", "default": { "allowlist": { "all": false, "clipboard": { "all": false, "readText": false, "writeText": false }, "dialog": { "all": false, "ask": false, "confirm": false, "message": false, "open": false, "save": false }, "fs": { "all": false, "copyFile": false, "createDir": false, "readDir": false, "readFile": false, "removeDir": false, "removeFile": false, "renameFile": false, "scope": [], "writeFile": false }, "globalShortcut": { "all": false }, "http": { "all": false, "request": false, "scope": [] }, "notification": { "all": false }, "os": { "all": false }, "path": { "all": false }, "process": { "all": false, "exit": false, "relaunch": false, "relaunchDangerousAllowSymlinkMacos": false }, "protocol": { "all": false, "asset": false, "assetScope": [] }, "shell": { "all": false, "execute": false, "open": false, "scope": [], "sidecar": false }, "window": { "all": false, "center": false, "close": false, "create": false, "hide": false, "maximize": false, "minimize": false, "print": false, "requestUserAttention": false, "setAlwaysOnTop": false, "setDecorations": false, "setFocus": false, "setFullscreen": false, "setIcon": false, "setMaxSize": false, "setMinSize": false, "setPosition": false, "setResizable": false, "setSize": false, "setSkipTaskbar": false, "setTitle": false, "show": false, "startDragging": false, "unmaximize": false, "unminimize": false } }, "bundle": { "active": false, "deb": { "files": {}, "useBootstrapper": false }, "icon": [], "identifier": "", "macOS": { "useBootstrapper": false }, "windows": { "certificateThumbprint": null, "digestAlgorithm": null, "timestampUrl": null, "webviewFixedRuntimePath": null, "wix": null } }, "macOSPrivateApi": false, "pattern": { "use": "brownfield" }, "security": { "freezePrototype": true }, "updater": { "active": false, "dialog": true, "pubkey": "" }, "windows": [] }, "allOf": [ { "$ref": "#/definitions/TauriConfig" } ] } }, "additionalProperties": false, "definitions": { "AllowlistConfig": { "description": "Allowlist configuration.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all API features.", "default": false, "type": "boolean" }, "clipboard": { "description": "Clipboard APIs allowlist.", "default": { "all": false, "readText": false, "writeText": false }, "allOf": [ { "$ref": "#/definitions/ClipboardAllowlistConfig" } ] }, "dialog": { "description": "Dialog API allowlist.", "default": { "all": false, "ask": false, "confirm": false, "message": false, "open": false, "save": false }, "allOf": [ { "$ref": "#/definitions/DialogAllowlistConfig" } ] }, "fs": { "description": "File system API allowlist.", "default": { "all": false, "copyFile": false, "createDir": false, "readDir": false, "readFile": false, "removeDir": false, "removeFile": false, "renameFile": false, "scope": [], "writeFile": false }, "allOf": [ { "$ref": "#/definitions/FsAllowlistConfig" } ] }, "globalShortcut": { "description": "Global shortcut API allowlist.", "default": { "all": false }, "allOf": [ { "$ref": "#/definitions/GlobalShortcutAllowlistConfig" } ] }, "http": { "description": "HTTP API allowlist.", "default": { "all": false, "request": false, "scope": [] }, "allOf": [ { "$ref": "#/definitions/HttpAllowlistConfig" } ] }, "notification": { "description": "Notification API allowlist.", "default": { "all": false }, "allOf": [ { "$ref": "#/definitions/NotificationAllowlistConfig" } ] }, "os": { "description": "OS allowlist.", "default": { "all": false }, "allOf": [ { "$ref": "#/definitions/OsAllowlistConfig" } ] }, "path": { "description": "Path API allowlist.", "default": { "all": false }, "allOf": [ { "$ref": "#/definitions/PathAllowlistConfig" } ] }, "process": { "description": "Process API allowlist.", "default": { "all": false, "exit": false, "relaunch": false, "relaunchDangerousAllowSymlinkMacos": false }, "allOf": [ { "$ref": "#/definitions/ProcessAllowlistConfig" } ] }, "protocol": { "description": "Custom protocol allowlist.", "default": { "all": false, "asset": false, "assetScope": [] }, "allOf": [ { "$ref": "#/definitions/ProtocolAllowlistConfig" } ] }, "shell": { "description": "Shell API allowlist.", "default": { "all": false, "execute": false, "open": false, "scope": [], "sidecar": false }, "allOf": [ { "$ref": "#/definitions/ShellAllowlistConfig" } ] }, "window": { "description": "Window API allowlist.", "default": { "all": false, "center": false, "close": false, "create": false, "hide": false, "maximize": false, "minimize": false, "print": false, "requestUserAttention": false, "setAlwaysOnTop": false, "setDecorations": false, "setFocus": false, "setFullscreen": false, "setIcon": false, "setMaxSize": false, "setMinSize": false, "setPosition": false, "setResizable": false, "setSize": false, "setSkipTaskbar": false, "setTitle": false, "show": false, "startDragging": false, "unmaximize": false, "unminimize": false }, "allOf": [ { "$ref": "#/definitions/WindowAllowlistConfig" } ] } }, "additionalProperties": false }, "AppUrl": { "description": "The `dev_path` and `dist_dir` options.", "anyOf": [ { "description": "The app's external URL, or the path to the directory containing the app assets.", "allOf": [ { "$ref": "#/definitions/WindowUrl" } ] }, { "description": "An array of files to embed on the app.", "type": "array", "items": { "type": "string" } } ] }, "BuildConfig": { "description": "The Build configuration object.", "type": "object", "properties": { "beforeBuildCommand": { "description": "A shell command to run before `tauri build` kicks in.\n\nThe TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG environment variables are set if you perform conditional compilation.", "type": [ "string", "null" ] }, "beforeDevCommand": { "description": "A shell command to run before `tauri dev` kicks in.\n\nThe TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG environment variables are set if you perform conditional compilation.", "type": [ "string", "null" ] }, "devPath": { "description": "The path or URL to use on development.", "default": "http://localhost:8080/", "allOf": [ { "$ref": "#/definitions/AppUrl" } ] }, "distDir": { "description": "The path to the app's dist dir. This path must contain your index.html file.", "default": "../dist", "allOf": [ { "$ref": "#/definitions/AppUrl" } ] }, "features": { "description": "Features passed to `cargo` commands.", "type": [ "array", "null" ], "items": { "type": "string" } }, "runner": { "description": "The binary used to build and run the application.", "type": [ "string", "null" ] }, "withGlobalTauri": { "description": "Whether we should inject the Tauri API on `window.__TAURI__` or not.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "BundleConfig": { "description": "Configuration for tauri-bundler.", "type": "object", "required": [ "identifier" ], "properties": { "active": { "description": "Whether we should build your app with tauri-bundler or plain `cargo build`", "default": false, "type": "boolean" }, "category": { "description": "The application kind.", "type": [ "string", "null" ] }, "copyright": { "description": "A copyright string associated with your application.", "type": [ "string", "null" ] }, "deb": { "description": "Configuration for the Debian bundle.", "default": { "files": {}, "useBootstrapper": false }, "allOf": [ { "$ref": "#/definitions/DebConfig" } ] }, "externalBin": { "description": "A list of—either absolute or relative—paths to binaries to embed with your application.\n\nNote that Tauri will look for system-specific binaries following the pattern \"binary-name{-target-triple}{.system-extension}\".\n\nE.g. for the external binary \"my-binary\", Tauri looks for:\n\n- \"my-binary-x86_64-pc-windows-msvc.exe\" for Windows - \"my-binary-x86_64-apple-darwin\" for macOS - \"my-binary-x86_64-unknown-linux-gnu\" for Linux\n\nso don't forget to provide binaries for all targeted platforms.", "type": [ "array", "null" ], "items": { "type": "string" } }, "icon": { "description": "The app's icons", "default": [], "type": "array", "items": { "type": "string" } }, "identifier": { "description": "The app's identifier", "type": "string" }, "longDescription": { "description": "A longer, multi-line description of the application.", "type": [ "string", "null" ] }, "macOS": { "description": "Configuration for the macOS bundles.", "default": { "useBootstrapper": false }, "allOf": [ { "$ref": "#/definitions/MacConfig" } ] }, "resources": { "description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.", "type": [ "array", "null" ], "items": { "type": "string" } }, "shortDescription": { "description": "A short description of your application.", "type": [ "string", "null" ] }, "targets": { "description": "The bundle targets, currently supports [\"deb\", \"app\", \"msi\", \"appimage\", \"dmg\"] or \"all\"", "anyOf": [ { "$ref": "#/definitions/BundleTarget" }, { "type": "null" } ] }, "windows": { "description": "Configuration for the Windows bundle.", "default": { "certificateThumbprint": null, "digestAlgorithm": null, "timestampUrl": null, "webviewFixedRuntimePath": null, "wix": null }, "allOf": [ { "$ref": "#/definitions/WindowsConfig" } ] } }, "additionalProperties": false }, "BundleTarget": { "description": "Targets to bundle.", "anyOf": [ { "description": "A list of bundle targets.", "type": "array", "items": { "type": "string" } }, { "description": "A single bundle target.", "type": "string" } ] }, "CliArg": { "description": "A CLI argument definition.", "type": "object", "required": [ "name" ], "properties": { "conflictsWith": { "description": "Sets a conflicting argument by name i.e. when using this argument, the following argument can't be present and vice versa.", "type": [ "string", "null" ] }, "conflictsWithAll": { "description": "The same as conflictsWith but allows specifying multiple two-way conflicts per argument.", "type": [ "array", "null" ], "items": { "type": "string" } }, "description": { "description": "The argument description which will be shown on the help information. Typically, this is a short (one line) description of the arg.", "type": [ "string", "null" ] }, "index": { "description": "The positional argument index, starting at 1.\n\nThe index refers to position according to other positional argument. It does not define position in the argument list as a whole. When utilized with multiple=true, only the last positional argument may be defined as multiple (i.e. the one with the highest index).", "type": [ "integer", "null" ], "format": "uint", "minimum": 0.0 }, "longDescription": { "description": "The argument long description which will be shown on the help information. Typically this a more detailed (multi-line) message that describes the argument.", "type": [ "string", "null" ] }, "maxValues": { "description": "Specifies the maximum number of values are for this argument. For example, if you had a -f argument where you wanted up to 3 'files', you would set .max_values(3), and this argument would be satisfied if the user provided, 1, 2, or 3 values.", "type": [ "integer", "null" ], "format": "uint", "minimum": 0.0 }, "minValues": { "description": "Specifies the minimum number of values for this argument. For example, if you had a -f argument where you wanted at least 2 'files', you would set `minValues: 2`, and this argument would be satisfied if the user provided, 2 or more values.", "type": [ "integer", "null" ], "format": "uint", "minimum": 0.0 }, "multiple": { "description": "Specifies that the argument may have an unknown number of multiple values. Without any other settings, this argument may appear only once.\n\nFor example, --opt val1 val2 is allowed, but --opt val1 val2 --opt val3 is not.\n\nNOTE: Setting this requires `takes_value` to be set to true.", "type": [ "boolean", "null" ] }, "multipleOccurrences": { "description": "Specifies that the argument may appear more than once. For flags, this results in the number of occurrences of the flag being recorded. For example -ddd or -d -d -d would count as three occurrences. For options or arguments that take a value, this does not affect how many values they can accept. (i.e. only one at a time is allowed)\n\nFor example, --opt val1 --opt val2 is allowed, but --opt val1 val2 is not.", "type": [ "boolean", "null" ] }, "name": { "description": "The unique argument name", "type": "string" }, "numberOfValues": { "description": "Specifies how many values are required to satisfy this argument. For example, if you had a `-f ` argument where you wanted exactly 3 'files' you would set `number_of_values = 3`, and this argument wouldn't be satisfied unless the user provided 3 and only 3 values.\n\n**NOTE:** Does *not* require `multiple_occurrences = true` to be set. Setting `multiple_occurrences = true` would allow `-f -f ` where as *not* setting it would only allow one occurrence of this argument.\n\n**NOTE:** implicitly sets `takes_value = true` and `multiple_values = true`.", "type": [ "integer", "null" ], "format": "uint", "minimum": 0.0 }, "possibleValues": { "description": "Specifies a list of possible values for this argument. At runtime, the CLI verifies that only one of the specified values was used, or fails with an error message.", "type": [ "array", "null" ], "items": { "type": "string" } }, "requireEquals": { "description": "Requires that options use the --option=val syntax i.e. an equals between the option and associated value.", "type": [ "boolean", "null" ] }, "required": { "description": "Sets whether or not the argument is required by default.\n\n- Required by default means it is required, when no other conflicting rules have been evaluated - Conflicting rules take precedence over being required.", "type": [ "boolean", "null" ] }, "requiredIfEq": { "description": "Allows specifying that an argument is required conditionally with the signature [arg, value] the requirement will only become valid if the `arg`'s value equals `${value}`.", "type": [ "array", "null" ], "items": { "type": "string" } }, "requiredUnlessPresent": { "description": "Sets an arg that override this arg's required setting i.e. this arg will be required unless this other argument is present.", "type": [ "string", "null" ] }, "requiredUnlessPresentAll": { "description": "Sets args that override this arg's required setting i.e. this arg will be required unless all these other arguments are present.", "type": [ "array", "null" ], "items": { "type": "string" } }, "requiredUnlessPresentAny": { "description": "Sets args that override this arg's required setting i.e. this arg will be required unless at least one of these other arguments are present.", "type": [ "array", "null" ], "items": { "type": "string" } }, "requires": { "description": "Tets an argument by name that is required when this one is present i.e. when using this argument, the following argument must be present.", "type": [ "string", "null" ] }, "requiresAll": { "description": "Sts multiple arguments by names that are required when this one is present i.e. when using this argument, the following arguments must be present.", "type": [ "array", "null" ], "items": { "type": "string" } }, "requiresIf": { "description": "Allows a conditional requirement with the signature [arg, value] the requirement will only become valid if `arg`'s value equals `${value}`.", "type": [ "array", "null" ], "items": { "type": "string" } }, "short": { "description": "The short version of the argument, without the preceding -.\n\nNOTE: Any leading - characters will be stripped, and only the first non - character will be used as the short version.", "type": [ "string", "null" ], "maxLength": 1, "minLength": 1 }, "takesValue": { "description": "Specifies that the argument takes a value at run time.\n\nNOTE: values for arguments may be specified in any of the following methods - Using a space such as -o value or --option value - Using an equals and no space such as -o=value or --option=value - Use a short and no space such as -ovalue", "type": [ "boolean", "null" ] } }, "additionalProperties": false }, "CliConfig": { "description": "describes a CLI configuration", "type": "object", "properties": { "afterHelp": { "description": "Adds additional help information to be displayed in addition to auto-generated help. This information is displayed after the auto-generated help information. This is often used to describe how to use the arguments, or caveats to be noted.", "type": [ "string", "null" ] }, "args": { "description": "List of arguments for the command", "type": [ "array", "null" ], "items": { "$ref": "#/definitions/CliArg" } }, "beforeHelp": { "description": "Adds additional help information to be displayed in addition to auto-generated help. This information is displayed before the auto-generated help information. This is often used for header information.", "type": [ "string", "null" ] }, "description": { "description": "Command description which will be shown on the help information.", "type": [ "string", "null" ] }, "longDescription": { "description": "Command long description which will be shown on the help information.", "type": [ "string", "null" ] }, "subcommands": { "description": "List of subcommands of this command", "type": [ "object", "null" ], "additionalProperties": { "$ref": "#/definitions/CliConfig" } } }, "additionalProperties": false }, "ClipboardAllowlistConfig": { "description": "Allowlist for the clipboard APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all clipboard APIs.", "default": false, "type": "boolean" }, "readText": { "description": "Enables the clipboard's `readText` API.", "default": false, "type": "boolean" }, "writeText": { "description": "Enables the clipboard's `writeText` API.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "DebConfig": { "description": "Configuration for Debian (.deb) bundles.", "type": "object", "properties": { "depends": { "description": "The list of deb dependencies your application relies on.", "type": [ "array", "null" ], "items": { "type": "string" } }, "files": { "description": "The files to include on the package.", "default": {}, "type": "object", "additionalProperties": { "type": "string" } }, "useBootstrapper": { "description": "Enable the boostrapper script.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "DialogAllowlistConfig": { "description": "Allowlist for the dialog APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all dialog API features.", "default": false, "type": "boolean" }, "ask": { "description": "Allows the API to show a dialog window with Yes/No buttons.", "default": false, "type": "boolean" }, "confirm": { "description": "Allows the API to show a dialog window with Ok/Cancel buttons.", "default": false, "type": "boolean" }, "message": { "description": "Allows the API to show a message dialog window.", "default": false, "type": "boolean" }, "open": { "description": "Allows the API to open a dialog window to pick files.", "default": false, "type": "boolean" }, "save": { "description": "Allows the API to open a dialog window to pick where to save files.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "FsAllowlistConfig": { "description": "Allowlist for the file system APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all file system API features.", "default": false, "type": "boolean" }, "copyFile": { "description": "Copy file from local filesystem.", "default": false, "type": "boolean" }, "createDir": { "description": "Create directory from local filesystem.", "default": false, "type": "boolean" }, "readDir": { "description": "Read directory from local filesystem.", "default": false, "type": "boolean" }, "readFile": { "description": "Read file from local filesystem.", "default": false, "type": "boolean" }, "removeDir": { "description": "Remove directory from local filesystem.", "default": false, "type": "boolean" }, "removeFile": { "description": "Remove file from local filesystem.", "default": false, "type": "boolean" }, "renameFile": { "description": "Rename file from local filesystem.", "default": false, "type": "boolean" }, "scope": { "description": "The access scope for the filesystem APIs.", "default": [], "allOf": [ { "$ref": "#/definitions/FsAllowlistScope" } ] }, "writeFile": { "description": "Write file to local filesystem.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "FsAllowlistScope": { "description": "Filesystem scope definition. It is a list of glob patterns that restrict the API access from the webview.\n\nEach pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$CWD`.", "type": "array", "items": { "type": "string" } }, "GlobalShortcutAllowlistConfig": { "description": "Allowlist for the global shortcut APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all global shortcut API features.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "HttpAllowlistConfig": { "description": "Allowlist for the HTTP APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all HTTP API features.", "default": false, "type": "boolean" }, "request": { "description": "Allows making HTTP requests.", "default": false, "type": "boolean" }, "scope": { "description": "The access scope for the HTTP APIs.", "default": [], "allOf": [ { "$ref": "#/definitions/HttpAllowlistScope" } ] } }, "additionalProperties": false }, "HttpAllowlistScope": { "description": "HTTP API scope definition. It is a list of URLs that can be accessed by the webview when using the HTTP APIs. The URL path is matched against the request URL using a glob pattern.", "type": "array", "items": { "type": "string", "format": "uri" } }, "MacConfig": { "description": "Configuration for the macOS bundles.", "type": "object", "properties": { "entitlements": { "description": "Path to the entitlements file.", "type": [ "string", "null" ] }, "exceptionDomain": { "description": "Allows your application to communicate with the outside world. It should be a lowercase, without port and protocol domain name.", "type": [ "string", "null" ] }, "frameworks": { "description": "A list of strings indicating any macOS X frameworks that need to be bundled with the application.\n\nIf a name is used, \".framework\" must be omitted and it will look for standard install locations. You may also use a path to a specific framework.", "type": [ "array", "null" ], "items": { "type": "string" } }, "license": { "description": "The path to the license file to add to the DMG bundle.", "type": [ "string", "null" ] }, "minimumSystemVersion": { "description": "A version string indicating the minimum macOS X version that the bundled application supports.", "type": [ "string", "null" ] }, "providerShortName": { "description": "Provider short name for notarization.", "type": [ "string", "null" ] }, "signingIdentity": { "description": "Identity to use for code signing.", "type": [ "string", "null" ] }, "useBootstrapper": { "description": "Enable the boostrapper script.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "NotificationAllowlistConfig": { "description": "Allowlist for the notification APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all notification API features.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "OsAllowlistConfig": { "description": "Allowlist for the OS APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all OS API features.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "PackageConfig": { "description": "The package configuration.", "type": "object", "properties": { "productName": { "description": "App name.", "type": [ "string", "null" ] }, "version": { "description": "App version. It is a semver version number or a path to a `package.json` file contaning the `version` field.", "default": null, "type": [ "string", "null" ] } }, "additionalProperties": false }, "PathAllowlistConfig": { "description": "Allowlist for the path APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all path API features.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "PatternKind": { "description": "The application pattern.", "oneOf": [ { "description": "Brownfield pattern.", "type": "object", "required": [ "use" ], "properties": { "use": { "type": "string", "enum": [ "brownfield" ] } } }, { "description": "Isolation pattern. Recommended for security purposes.", "type": "object", "required": [ "options", "use" ], "properties": { "options": { "type": "object", "required": [ "dir" ], "properties": { "dir": { "description": "The dir containing the index.html file that contains the secure isolation application.", "type": "string" } } }, "use": { "type": "string", "enum": [ "isolation" ] } } } ] }, "PluginConfig": { "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.", "type": "object", "additionalProperties": true }, "ProcessAllowlistConfig": { "description": "Allowlist for the process APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all process APIs.", "default": false, "type": "boolean" }, "exit": { "description": "Enables the exit API.", "default": false, "type": "boolean" }, "relaunch": { "description": "Enables the relaunch API.", "default": false, "type": "boolean" }, "relaunchDangerousAllowSymlinkMacos": { "description": "Dangerous option that allows macOS to relaunch even if the binary contains a symlink.\n\nThis is due to macOS having less symlink protection. Highly recommended to not set this flag unless you have a very specific reason too, and understand the implications of it.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "ProtocolAllowlistConfig": { "description": "Allowlist for the custom protocols.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all custom protocols.", "default": false, "type": "boolean" }, "asset": { "description": "Enables the asset protocol.", "default": false, "type": "boolean" }, "assetScope": { "description": "The access scope for the asset protocol.", "default": [], "allOf": [ { "$ref": "#/definitions/FsAllowlistScope" } ] } }, "additionalProperties": false }, "SecurityConfig": { "description": "Security configuration.", "type": "object", "properties": { "csp": { "description": "The Content Security Policy that will be injected on all HTML files on the built application. If [`dev_csp`](SecurityConfig.dev_csp) is not specified, this value is also injected on dev.\n\nThis is a really important part of the configuration since it helps you ensure your WebView is secured. See .", "type": [ "string", "null" ] }, "devCsp": { "description": "The Content Security Policy that will be injected on all HTML files on development.\n\nThis is a really important part of the configuration since it helps you ensure your WebView is secured. See .", "type": [ "string", "null" ] }, "freezePrototype": { "description": "Freeze the `Object.prototype` when using the custom protocol.", "default": true, "type": "boolean" } }, "additionalProperties": false }, "ShellAllowedArg": { "description": "A command argument allowed to be executed by the webview API.", "anyOf": [ { "description": "A non-configurable argument that is passed to the command in the order it was specified.", "type": "string" }, { "description": "A variable that is set while calling the command from the webview API.", "type": "object", "properties": { "validator": { "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax", "default": "", "type": "string" } }, "additionalProperties": false } ] }, "ShellAllowedArgs": { "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", "anyOf": [ { "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", "type": "boolean" }, { "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.", "type": "array", "items": { "$ref": "#/definitions/ShellAllowedArg" } } ] }, "ShellAllowedCommand": { "description": "A command allowed to be executed by the webview API.", "type": "object", "required": [ "cmd", "name" ], "properties": { "args": { "description": "The allowed arguments for the command execution.", "default": false, "allOf": [ { "$ref": "#/definitions/ShellAllowedArgs" } ] }, "cmd": { "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$CWD`.", "type": "string" }, "name": { "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", "type": "string" }, "sidecar": { "description": "If this command is a sidecar command.", "default": false, "type": "boolean" } } }, "ShellAllowlistConfig": { "description": "Allowlist for the shell APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all shell API features.", "default": false, "type": "boolean" }, "execute": { "description": "Enable binary execution.", "default": false, "type": "boolean" }, "open": { "description": "Open URL with the user's default application.", "default": false, "allOf": [ { "$ref": "#/definitions/ShellAllowlistOpen" } ] }, "scope": { "description": "Access scope for the binary execution APIs. Sidecars are automatically enabled.", "default": [], "allOf": [ { "$ref": "#/definitions/ShellAllowlistScope" } ] }, "sidecar": { "description": "Enable sidecar execution, allowing the JavaScript layer to spawn a sidecar command, an executable that is shipped with the application. For more information see .", "default": false, "type": "boolean" } }, "additionalProperties": false }, "ShellAllowlistOpen": { "description": "Defines the `shell > open` api scope.", "anyOf": [ { "description": "If the shell open API should be enabled.\n\nIf enabled, the default validation regex (`^https?://`) is used.", "type": "boolean" }, { "description": "Enable the shell open API, with a custom regex that the opened path must match against.\n\nIf using a custom regex to support a non-http(s) schema, care should be used to prevent values that allow flag-like strings to pass validation. e.g. `--enable-debugging`, `-i`, `/R`.", "type": "string" } ] }, "ShellAllowlistScope": { "description": "Shell scope definition. It is a list of command names and associated CLI arguments that restrict the API access from the webview.", "type": "array", "items": { "$ref": "#/definitions/ShellAllowedCommand" } }, "SystemTrayConfig": { "description": "Configuration for application system tray icon.", "type": "object", "required": [ "iconPath" ], "properties": { "iconAsTemplate": { "description": "A Boolean value that determines whether the image represents a [template](https://developer.apple.com/documentation/appkit/nsimage/1520017-template?language=objc) image on macOS.", "default": false, "type": "boolean" }, "iconPath": { "description": "Path to the icon to use on the system tray.\n\nIt is forced to be a `.png` file on Linux and macOS, and a `.ico` file on Windows.", "type": "string" } }, "additionalProperties": false }, "TauriConfig": { "description": "The Tauri configuration object.", "type": "object", "properties": { "allowlist": { "description": "The allowlist configuration.", "default": { "all": false, "clipboard": { "all": false, "readText": false, "writeText": false }, "dialog": { "all": false, "ask": false, "confirm": false, "message": false, "open": false, "save": false }, "fs": { "all": false, "copyFile": false, "createDir": false, "readDir": false, "readFile": false, "removeDir": false, "removeFile": false, "renameFile": false, "scope": [], "writeFile": false }, "globalShortcut": { "all": false }, "http": { "all": false, "request": false, "scope": [] }, "notification": { "all": false }, "os": { "all": false }, "path": { "all": false }, "process": { "all": false, "exit": false, "relaunch": false, "relaunchDangerousAllowSymlinkMacos": false }, "protocol": { "all": false, "asset": false, "assetScope": [] }, "shell": { "all": false, "execute": false, "open": false, "scope": [], "sidecar": false }, "window": { "all": false, "center": false, "close": false, "create": false, "hide": false, "maximize": false, "minimize": false, "print": false, "requestUserAttention": false, "setAlwaysOnTop": false, "setDecorations": false, "setFocus": false, "setFullscreen": false, "setIcon": false, "setMaxSize": false, "setMinSize": false, "setPosition": false, "setResizable": false, "setSize": false, "setSkipTaskbar": false, "setTitle": false, "show": false, "startDragging": false, "unmaximize": false, "unminimize": false } }, "allOf": [ { "$ref": "#/definitions/AllowlistConfig" } ] }, "bundle": { "description": "The bundler configuration.", "default": { "active": false, "deb": { "files": {}, "useBootstrapper": false }, "icon": [], "identifier": "", "macOS": { "useBootstrapper": false }, "windows": { "certificateThumbprint": null, "digestAlgorithm": null, "timestampUrl": null, "webviewFixedRuntimePath": null, "wix": null } }, "allOf": [ { "$ref": "#/definitions/BundleConfig" } ] }, "cli": { "description": "The CLI configuration.", "anyOf": [ { "$ref": "#/definitions/CliConfig" }, { "type": "null" } ] }, "macOSPrivateApi": { "description": "MacOS private API configuration. Enables the transparent background API and sets the `fullScreenEnabled` preference to `true`.", "default": false, "type": "boolean" }, "pattern": { "description": "The pattern to use.", "default": { "use": "brownfield" }, "allOf": [ { "$ref": "#/definitions/PatternKind" } ] }, "security": { "description": "Security configuration.", "default": { "freezePrototype": true }, "allOf": [ { "$ref": "#/definitions/SecurityConfig" } ] }, "systemTray": { "description": "Configuration for app system tray.", "anyOf": [ { "$ref": "#/definitions/SystemTrayConfig" }, { "type": "null" } ] }, "updater": { "description": "The updater configuration.", "default": { "active": false, "dialog": true, "pubkey": "" }, "allOf": [ { "$ref": "#/definitions/UpdaterConfig" } ] }, "windows": { "description": "The windows configuration.", "default": [], "type": "array", "items": { "$ref": "#/definitions/WindowConfig" } } }, "additionalProperties": false }, "UpdaterConfig": { "description": "The Updater configuration object.", "type": "object", "properties": { "active": { "description": "Whether the updater is active or not.", "default": false, "type": "boolean" }, "dialog": { "description": "Display built-in dialog or use event system if disabled.", "default": true, "type": "boolean" }, "endpoints": { "description": "The updater endpoints. TLS is enforced on production.", "type": [ "array", "null" ], "items": { "$ref": "#/definitions/UpdaterEndpoint" } }, "pubkey": { "description": "Signature public key.", "default": "", "type": "string" } }, "additionalProperties": false }, "UpdaterEndpoint": { "description": "A URL to an updater server.\n\nThe URL must use the `https` scheme on production.", "type": "string", "format": "uri" }, "WindowAllowlistConfig": { "description": "Allowlist for the window APIs.", "type": "object", "properties": { "all": { "description": "Use this flag to enable all window API features.", "default": false, "type": "boolean" }, "center": { "description": "Allows centering the window.", "default": false, "type": "boolean" }, "close": { "description": "Allows closing the window.", "default": false, "type": "boolean" }, "create": { "description": "Allows dynamic window creation.", "default": false, "type": "boolean" }, "hide": { "description": "Allows hiding the window.", "default": false, "type": "boolean" }, "maximize": { "description": "Allows maximizing the window.", "default": false, "type": "boolean" }, "minimize": { "description": "Allows minimizing the window.", "default": false, "type": "boolean" }, "print": { "description": "Allows opening the system dialog to print the window content.", "default": false, "type": "boolean" }, "requestUserAttention": { "description": "Allows requesting user attention on the window.", "default": false, "type": "boolean" }, "setAlwaysOnTop": { "description": "Allows setting the always_on_top flag of the window.", "default": false, "type": "boolean" }, "setDecorations": { "description": "Allows setting the decorations flag of the window.", "default": false, "type": "boolean" }, "setFocus": { "description": "Allows focusing the window.", "default": false, "type": "boolean" }, "setFullscreen": { "description": "Allows setting the fullscreen flag of the window.", "default": false, "type": "boolean" }, "setIcon": { "description": "Allows changing the window icon.", "default": false, "type": "boolean" }, "setMaxSize": { "description": "Allows setting the window maximum size.", "default": false, "type": "boolean" }, "setMinSize": { "description": "Allows setting the window minimum size.", "default": false, "type": "boolean" }, "setPosition": { "description": "Allows changing the position of the window.", "default": false, "type": "boolean" }, "setResizable": { "description": "Allows setting the resizable flag of the window.", "default": false, "type": "boolean" }, "setSize": { "description": "Allows setting the window size.", "default": false, "type": "boolean" }, "setSkipTaskbar": { "description": "Allows setting the skip_taskbar flag of the window.", "default": false, "type": "boolean" }, "setTitle": { "description": "Allows changing the window title.", "default": false, "type": "boolean" }, "show": { "description": "Allows showing the window.", "default": false, "type": "boolean" }, "startDragging": { "description": "Allows start dragging on the window.", "default": false, "type": "boolean" }, "unmaximize": { "description": "Allows unmaximizing the window.", "default": false, "type": "boolean" }, "unminimize": { "description": "Allows unminimizing the window.", "default": false, "type": "boolean" } }, "additionalProperties": false }, "WindowConfig": { "description": "The window configuration object.", "type": "object", "properties": { "alwaysOnTop": { "description": "Whether the window should always be on top of other windows.", "default": false, "type": "boolean" }, "center": { "description": "Whether or not the window starts centered or not.", "default": false, "type": "boolean" }, "decorations": { "description": "Whether the window should have borders and bars.", "default": true, "type": "boolean" }, "fileDropEnabled": { "description": "Whether the file drop is enabled or not on the webview. By default it is enabled.\n\nDisabling it is required to use drag and drop on the frontend on Windows.", "default": true, "type": "boolean" }, "focus": { "description": "Whether the window will be initially hidden or focused.", "default": true, "type": "boolean" }, "fullscreen": { "description": "Whether the window starts as fullscreen or not.", "default": false, "type": "boolean" }, "height": { "description": "The window height.", "default": 600.0, "type": "number", "format": "double" }, "label": { "description": "The window identifier. It must be alphanumeric.", "default": "main", "type": "string" }, "maxHeight": { "description": "The max window height.", "type": [ "number", "null" ], "format": "double" }, "maxWidth": { "description": "The max window width.", "type": [ "number", "null" ], "format": "double" }, "maximized": { "description": "Whether the window is maximized or not.", "default": false, "type": "boolean" }, "minHeight": { "description": "The min window height.", "type": [ "number", "null" ], "format": "double" }, "minWidth": { "description": "The min window width.", "type": [ "number", "null" ], "format": "double" }, "resizable": { "description": "Whether the window is resizable or not.", "default": true, "type": "boolean" }, "skipTaskbar": { "description": "Whether or not the window icon should be added to the taskbar.", "default": false, "type": "boolean" }, "title": { "description": "The window title.", "default": "Tauri App", "type": "string" }, "transparent": { "description": "Whether the window is transparent or not.\n\nNote that on `macOS` this requires the `macos-private-api` feature flag, enabled under `tauri.conf.json > tauri > macosPrivateApi`. WARNING: Using private APIs on `macOS` prevents your application from being accepted for the `App Store`.", "default": false, "type": "boolean" }, "url": { "description": "The window webview URL.", "default": "index.html", "allOf": [ { "$ref": "#/definitions/WindowUrl" } ] }, "visible": { "description": "Whether the window is visible or not.", "default": true, "type": "boolean" }, "width": { "description": "The window width.", "default": 800.0, "type": "number", "format": "double" }, "x": { "description": "The horizontal position of the window's top left corner", "type": [ "number", "null" ], "format": "double" }, "y": { "description": "The vertical position of the window's top left corner", "type": [ "number", "null" ], "format": "double" } }, "additionalProperties": false }, "WindowUrl": { "description": "An URL to open on a Tauri webview window.", "anyOf": [ { "description": "An external URL.", "type": "string", "format": "uri" }, { "description": "An app URL.", "type": "string" } ] }, "WindowsConfig": { "description": "Windows bundler configuration.", "type": "object", "properties": { "certificateThumbprint": { "description": "Specifies the SHA1 hash of the signing certificate.", "type": [ "string", "null" ] }, "digestAlgorithm": { "description": "Specifies the file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.", "type": [ "string", "null" ] }, "timestampUrl": { "description": "Server to use during timestamping.", "type": [ "string", "null" ] }, "webviewFixedRuntimePath": { "description": "Path to the webview fixed runtime to use.\n\nThe fixed version can be downloaded [on the official website](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section). The `.cab` file must be extracted to a folder and this folder path must be defined on this field.", "type": [ "string", "null" ] }, "wix": { "description": "Configuration for the MSI generated with WiX.", "anyOf": [ { "$ref": "#/definitions/WixConfig" }, { "type": "null" } ] } }, "additionalProperties": false }, "WixConfig": { "description": "Configuration for the MSI bundle using WiX.", "type": "object", "properties": { "bannerPath": { "description": "Path to a bitmap file to use as the installation user interface banner. This bitmap will appear at the top of all but the first page of the installer.\n\nThe required dimensions are 493px × 58px.", "type": [ "string", "null" ] }, "componentGroupRefs": { "description": "The ComponentGroup element ids you want to reference from the fragments.", "default": [], "type": "array", "items": { "type": "string" } }, "componentRefs": { "description": "The Component element ids you want to reference from the fragments.", "default": [], "type": "array", "items": { "type": "string" } }, "dialogImagePath": { "description": "Path to a bitmap file to use on the installation user interface dialogs. It is used on the welcome and completion dialogs. The required dimensions are 493px × 312px.", "type": [ "string", "null" ] }, "enableElevatedUpdateTask": { "description": "Create an elevated update task within Windows Task Scheduler.", "default": false, "type": "boolean" }, "featureGroupRefs": { "description": "The FeatureGroup element ids you want to reference from the fragments.", "default": [], "type": "array", "items": { "type": "string" } }, "featureRefs": { "description": "The Feature element ids you want to reference from the fragments.", "default": [], "type": "array", "items": { "type": "string" } }, "fragmentPaths": { "description": "A list of paths to .wxs files with WiX fragments to use.", "default": [], "type": "array", "items": { "type": "string" } }, "language": { "description": "The installer languages to build. See .", "default": "en-US", "allOf": [ { "$ref": "#/definitions/WixLanguage" } ] }, "license": { "description": "The path to the license file to render on the installer.\n\nMust be an RTF file, so if a different extension is provided, we convert it to the RTF format.", "type": [ "string", "null" ] }, "mergeRefs": { "description": "The Merge element ids you want to reference from the fragments.", "default": [], "type": "array", "items": { "type": "string" } }, "skipWebviewInstall": { "description": "Disables the Webview2 runtime installation after app install.", "default": false, "type": "boolean" }, "template": { "description": "A custom .wxs template to use.", "type": [ "string", "null" ] } }, "additionalProperties": false }, "WixLanguage": { "description": "The languages to build using WiX.", "anyOf": [ { "description": "A single language to build, without configuration.", "type": "string" }, { "description": "A list of languages to build, without configuration.", "type": "array", "items": { "type": "string" } }, { "description": "A map of languages and its configuration.", "type": "object", "additionalProperties": { "$ref": "#/definitions/WixLanguageConfig" } } ] }, "WixLanguageConfig": { "description": "Configuration for a target language for the WiX build.", "type": "object", "properties": { "localePath": { "description": "The path to a locale (`.wxl`) file. See .", "type": [ "string", "null" ] } }, "additionalProperties": false } } }