@tauri-apps/cli 2.0.0-alpha.1 → 2.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/schema.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "title": "Config",
4
- "description": "The Tauri configuration object. It is read from a file where you can define your frontend assets, configure the bundler, enable the app updater, define a system tray, enable APIs via the allowlist and more.\n\nThe configuration file is generated by the [`tauri init`](https://tauri.app/v1/api/cli#init) command that lives in your Tauri application source directory (src-tauri).\n\nOnce generated, you may modify it at will to customize your Tauri application.\n\n## File Formats\n\nBy default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\nTauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively. The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`. The TOML file name is `Tauri.toml`.\n\n## Platform-Specific Configuration\n\nIn addition to the default configuration file, Tauri can read a platform-specific configuration from `tauri.linux.conf.json`, `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json` (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used), which gets merged with the main configuration object.\n\n## Configuration Structure\n\nThe configuration is composed of the following objects:\n\n- [`package`](#packageconfig): Package settings - [`tauri`](#tauriconfig): The Tauri config - [`build`](#buildconfig): The build configuration - [`plugins`](#pluginconfig): The plugins config\n\n```json title=\"Example tauri.config.json file\" { \"build\": { \"beforeBuildCommand\": \"\", \"beforeDevCommand\": \"\", \"devPath\": \"../dist\", \"distDir\": \"../dist\" }, \"package\": { \"productName\": \"tauri-app\", \"version\": \"0.1.0\" }, \"tauri\": { \"allowlist\": { \"all\": true }, \"bundle\": {}, \"security\": { \"csp\": null }, \"updater\": { \"active\": false }, \"windows\": [ { \"fullscreen\": false, \"height\": 600, \"resizable\": true, \"title\": \"Tauri App\", \"width\": 800 } ] } } ```",
4
+ "description": "The Tauri configuration object. It is read from a file where you can define your frontend assets, configure the bundler and define a system tray.\n\nThe configuration file is generated by the [`tauri init`](https://tauri.app/v1/api/cli#init) command that lives in your Tauri application source directory (src-tauri).\n\nOnce generated, you may modify it at will to customize your Tauri application.\n\n## File Formats\n\nBy default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\nTauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively. The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`. The TOML file name is `Tauri.toml`.\n\n## Platform-Specific Configuration\n\nIn addition to the default configuration file, Tauri can read a platform-specific configuration from `tauri.linux.conf.json`, `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json` (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used), which gets merged with the main configuration object.\n\n## Configuration Structure\n\nThe configuration is composed of the following objects:\n\n- [`package`](#packageconfig): Package settings - [`tauri`](#tauriconfig): The Tauri config - [`build`](#buildconfig): The build configuration - [`plugins`](#pluginconfig): The plugins config\n\n```json title=\"Example tauri.config.json file\" { \"build\": { \"beforeBuildCommand\": \"\", \"beforeDevCommand\": \"\", \"devPath\": \"../dist\", \"distDir\": \"../dist\" }, \"package\": { \"productName\": \"tauri-app\", \"version\": \"0.1.0\" }, \"tauri\": { \"bundle\": {}, \"security\": { \"csp\": null }, \"windows\": [ { \"fullscreen\": false, \"height\": 600, \"resizable\": true, \"title\": \"Tauri App\", \"width\": 800 } ] } } ```",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "$schema": {
@@ -26,109 +26,11 @@
26
26
  "tauri": {
27
27
  "description": "The Tauri configuration.",
28
28
  "default": {
29
- "allowlist": {
30
- "all": false,
31
- "app": {
32
- "all": false,
33
- "hide": false,
34
- "show": false
35
- },
36
- "clipboard": {
37
- "all": false,
38
- "readText": false,
39
- "writeText": false
40
- },
41
- "dialog": {
42
- "all": false,
43
- "ask": false,
44
- "confirm": false,
45
- "message": false,
46
- "open": false,
47
- "save": false
48
- },
49
- "fs": {
50
- "all": false,
51
- "copyFile": false,
52
- "createDir": false,
53
- "exists": false,
54
- "readDir": false,
55
- "readFile": false,
56
- "removeDir": false,
57
- "removeFile": false,
58
- "renameFile": false,
59
- "scope": [],
60
- "writeFile": false
61
- },
62
- "globalShortcut": {
63
- "all": false
64
- },
65
- "http": {
66
- "all": false,
67
- "request": false,
68
- "scope": []
69
- },
70
- "notification": {
71
- "all": false
72
- },
73
- "os": {
74
- "all": false
75
- },
76
- "path": {
77
- "all": false
78
- },
79
- "process": {
80
- "all": false,
81
- "exit": false,
82
- "relaunch": false,
83
- "relaunchDangerousAllowSymlinkMacos": false
84
- },
85
- "protocol": {
86
- "all": false,
87
- "asset": false,
88
- "assetScope": []
89
- },
90
- "shell": {
91
- "all": false,
92
- "execute": false,
93
- "open": false,
94
- "scope": [],
95
- "sidecar": false
96
- },
97
- "window": {
98
- "all": false,
99
- "center": false,
100
- "close": false,
101
- "create": false,
102
- "hide": false,
103
- "maximize": false,
104
- "minimize": false,
105
- "print": false,
106
- "requestUserAttention": false,
107
- "setAlwaysOnTop": false,
108
- "setCursorGrab": false,
109
- "setCursorIcon": false,
110
- "setCursorPosition": false,
111
- "setCursorVisible": false,
112
- "setDecorations": false,
113
- "setFocus": false,
114
- "setFullscreen": false,
115
- "setIcon": false,
116
- "setIgnoreCursorEvents": false,
117
- "setMaxSize": false,
118
- "setMinSize": false,
119
- "setPosition": false,
120
- "setResizable": false,
121
- "setSize": false,
122
- "setSkipTaskbar": false,
123
- "setTitle": false,
124
- "show": false,
125
- "startDragging": false,
126
- "unmaximize": false,
127
- "unminimize": false
128
- }
129
- },
130
29
  "bundle": {
131
30
  "active": false,
31
+ "android": {
32
+ "minSdkVersion": 24
33
+ },
132
34
  "appimage": {
133
35
  "bundleMediaFramework": false
134
36
  },
@@ -142,10 +44,18 @@
142
44
  "minimumSystemVersion": "10.13"
143
45
  },
144
46
  "targets": "all",
47
+ "updater": {
48
+ "active": false,
49
+ "pubkey": "",
50
+ "windows": {
51
+ "installMode": "passive"
52
+ }
53
+ },
145
54
  "windows": {
146
55
  "allowDowngrades": true,
147
56
  "certificateThumbprint": null,
148
57
  "digestAlgorithm": null,
58
+ "nsis": null,
149
59
  "timestampUrl": null,
150
60
  "tsp": false,
151
61
  "webviewFixedRuntimePath": null,
@@ -161,17 +71,14 @@
161
71
  "use": "brownfield"
162
72
  },
163
73
  "security": {
74
+ "assetProtocol": {
75
+ "enable": false,
76
+ "scope": []
77
+ },
164
78
  "dangerousDisableAssetCspModification": false,
79
+ "dangerousRemoteDomainIpcAccess": [],
165
80
  "freezePrototype": false
166
81
  },
167
- "updater": {
168
- "active": false,
169
- "dialog": true,
170
- "pubkey": "",
171
- "windows": {
172
- "installMode": "passive"
173
- }
174
- },
175
82
  "windows": []
176
83
  },
177
84
  "allOf": [
@@ -206,7 +113,7 @@
206
113
  "additionalProperties": false,
207
114
  "definitions": {
208
115
  "PackageConfig": {
209
- "description": "The package configuration.",
116
+ "description": "The package configuration.\n\nSee more: https://tauri.app/v1/api/config#packageconfig",
210
117
  "type": "object",
211
118
  "properties": {
212
119
  "productName": {
@@ -218,7 +125,7 @@
218
125
  "pattern": "^[^/\\:*?\"<>|]+$"
219
126
  },
220
127
  "version": {
221
- "description": "App version. It is a semver version number or a path to a `package.json` file containing the `version` field.",
128
+ "description": "App version. It is a semver version number or a path to a `package.json` file containing the `version` field. If removed the version number from `Cargo.toml` is used.",
222
129
  "default": null,
223
130
  "type": [
224
131
  "string",
@@ -229,7 +136,7 @@
229
136
  "additionalProperties": false
230
137
  },
231
138
  "TauriConfig": {
232
- "description": "The Tauri configuration object.",
139
+ "description": "The Tauri configuration object.\n\nSee more: https://tauri.app/v1/api/config#tauriconfig",
233
140
  "type": "object",
234
141
  "properties": {
235
142
  "pattern": {
@@ -251,21 +158,13 @@
251
158
  "$ref": "#/definitions/WindowConfig"
252
159
  }
253
160
  },
254
- "cli": {
255
- "description": "The CLI configuration.",
256
- "anyOf": [
257
- {
258
- "$ref": "#/definitions/CliConfig"
259
- },
260
- {
261
- "type": "null"
262
- }
263
- ]
264
- },
265
161
  "bundle": {
266
162
  "description": "The bundler configuration.",
267
163
  "default": {
268
164
  "active": false,
165
+ "android": {
166
+ "minSdkVersion": 24
167
+ },
269
168
  "appimage": {
270
169
  "bundleMediaFramework": false
271
170
  },
@@ -279,10 +178,18 @@
279
178
  "minimumSystemVersion": "10.13"
280
179
  },
281
180
  "targets": "all",
181
+ "updater": {
182
+ "active": false,
183
+ "pubkey": "",
184
+ "windows": {
185
+ "installMode": "passive"
186
+ }
187
+ },
282
188
  "windows": {
283
189
  "allowDowngrades": true,
284
190
  "certificateThumbprint": null,
285
191
  "digestAlgorithm": null,
192
+ "nsis": null,
286
193
  "timestampUrl": null,
287
194
  "tsp": false,
288
195
  "webviewFixedRuntimePath": null,
@@ -299,119 +206,15 @@
299
206
  }
300
207
  ]
301
208
  },
302
- "allowlist": {
303
- "description": "The allowlist configuration.",
304
- "default": {
305
- "all": false,
306
- "app": {
307
- "all": false,
308
- "hide": false,
309
- "show": false
310
- },
311
- "clipboard": {
312
- "all": false,
313
- "readText": false,
314
- "writeText": false
315
- },
316
- "dialog": {
317
- "all": false,
318
- "ask": false,
319
- "confirm": false,
320
- "message": false,
321
- "open": false,
322
- "save": false
323
- },
324
- "fs": {
325
- "all": false,
326
- "copyFile": false,
327
- "createDir": false,
328
- "exists": false,
329
- "readDir": false,
330
- "readFile": false,
331
- "removeDir": false,
332
- "removeFile": false,
333
- "renameFile": false,
334
- "scope": [],
335
- "writeFile": false
336
- },
337
- "globalShortcut": {
338
- "all": false
339
- },
340
- "http": {
341
- "all": false,
342
- "request": false,
343
- "scope": []
344
- },
345
- "notification": {
346
- "all": false
347
- },
348
- "os": {
349
- "all": false
350
- },
351
- "path": {
352
- "all": false
353
- },
354
- "process": {
355
- "all": false,
356
- "exit": false,
357
- "relaunch": false,
358
- "relaunchDangerousAllowSymlinkMacos": false
359
- },
360
- "protocol": {
361
- "all": false,
362
- "asset": false,
363
- "assetScope": []
364
- },
365
- "shell": {
366
- "all": false,
367
- "execute": false,
368
- "open": false,
369
- "scope": [],
370
- "sidecar": false
371
- },
372
- "window": {
373
- "all": false,
374
- "center": false,
375
- "close": false,
376
- "create": false,
377
- "hide": false,
378
- "maximize": false,
379
- "minimize": false,
380
- "print": false,
381
- "requestUserAttention": false,
382
- "setAlwaysOnTop": false,
383
- "setCursorGrab": false,
384
- "setCursorIcon": false,
385
- "setCursorPosition": false,
386
- "setCursorVisible": false,
387
- "setDecorations": false,
388
- "setFocus": false,
389
- "setFullscreen": false,
390
- "setIcon": false,
391
- "setIgnoreCursorEvents": false,
392
- "setMaxSize": false,
393
- "setMinSize": false,
394
- "setPosition": false,
395
- "setResizable": false,
396
- "setSize": false,
397
- "setSkipTaskbar": false,
398
- "setTitle": false,
399
- "show": false,
400
- "startDragging": false,
401
- "unmaximize": false,
402
- "unminimize": false
403
- }
404
- },
405
- "allOf": [
406
- {
407
- "$ref": "#/definitions/AllowlistConfig"
408
- }
409
- ]
410
- },
411
209
  "security": {
412
210
  "description": "Security configuration.",
413
211
  "default": {
212
+ "assetProtocol": {
213
+ "enable": false,
214
+ "scope": []
215
+ },
414
216
  "dangerousDisableAssetCspModification": false,
217
+ "dangerousRemoteDomainIpcAccess": [],
415
218
  "freezePrototype": false
416
219
  },
417
220
  "allOf": [
@@ -420,22 +223,6 @@
420
223
  }
421
224
  ]
422
225
  },
423
- "updater": {
424
- "description": "The updater configuration.",
425
- "default": {
426
- "active": false,
427
- "dialog": true,
428
- "pubkey": "",
429
- "windows": {
430
- "installMode": "passive"
431
- }
432
- },
433
- "allOf": [
434
- {
435
- "$ref": "#/definitions/UpdaterConfig"
436
- }
437
- ]
438
- },
439
226
  "systemTray": {
440
227
  "description": "Configuration for app system tray.",
441
228
  "anyOf": [
@@ -504,7 +291,7 @@
504
291
  ]
505
292
  },
506
293
  "WindowConfig": {
507
- "description": "The window configuration object.",
294
+ "description": "The window configuration object.\n\nSee more: https://tauri.app/v1/api/config#windowconfig",
508
295
  "type": "object",
509
296
  "properties": {
510
297
  "label": {
@@ -599,7 +386,22 @@
599
386
  "format": "double"
600
387
  },
601
388
  "resizable": {
602
- "description": "Whether the window is resizable or not.",
389
+ "description": "Whether the window is resizable or not. When resizable is set to false, native window's maximize button is automatically disabled.",
390
+ "default": true,
391
+ "type": "boolean"
392
+ },
393
+ "maximizable": {
394
+ "description": "Whether the window's native maximize button is enabled or not. If resizable is set to false, this setting is ignored.\n\n## Platform-specific\n\n- **macOS:** Disables the \"zoom\" button in the window titlebar, which is also used to enter fullscreen mode. - **Linux / iOS / Android:** Unsupported.",
395
+ "default": true,
396
+ "type": "boolean"
397
+ },
398
+ "minimizable": {
399
+ "description": "Whether the window's native minimize button is enabled or not.\n\n## Platform-specific\n\n- **Linux / iOS / Android:** Unsupported.",
400
+ "default": true,
401
+ "type": "boolean"
402
+ },
403
+ "closable": {
404
+ "description": "Whether the window's native close button is enabled or not.\n\n## Platform-specific\n\n- **Linux:** \"GTK+ will do its best to convince the window manager not to show a close button. Depending on the system, this function may not have any effect when called on a window that is already visible\" - **iOS / Android:** Unsupported.",
603
405
  "default": true,
604
406
  "type": "boolean"
605
407
  },
@@ -643,6 +445,11 @@
643
445
  "default": false,
644
446
  "type": "boolean"
645
447
  },
448
+ "contentProtected": {
449
+ "description": "Prevents the window contents from being captured by other apps.",
450
+ "default": false,
451
+ "type": "boolean"
452
+ },
646
453
  "skipTaskbar": {
647
454
  "description": "If `true`, hides the window icon from the taskbar on Windows and Linux.",
648
455
  "default": false,
@@ -684,6 +491,34 @@
684
491
  "string",
685
492
  "null"
686
493
  ]
494
+ },
495
+ "additionalBrowserArgs": {
496
+ "description": "Defines additional browser arguments on Windows. By default wry passes `--disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection` so if you use this method, you also need to disable these components by yourself if you want.",
497
+ "type": [
498
+ "string",
499
+ "null"
500
+ ]
501
+ },
502
+ "shadow": {
503
+ "description": "Whether or not the window has shadow.\n\n## Platform-specific\n\n- **Windows:** - `false` has no effect on decorated window, shadow are always ON. - `true` will make ndecorated window have a 1px white border, and on Windows 11, it will have a rounded corners. - **Linux:** Unsupported.",
504
+ "default": true,
505
+ "type": "boolean"
506
+ },
507
+ "windowEffects": {
508
+ "description": "Window effects.\n\nRequires the window to be transparent.\n\n## Platform-specific:\n\n- **Windows**: If using decorations or shadows, you may want to try this workaround https://github.com/tauri-apps/tao/issues/72#issuecomment-975607891 - **Linux**: Unsupported",
509
+ "anyOf": [
510
+ {
511
+ "$ref": "#/definitions/WindowEffectsConfig"
512
+ },
513
+ {
514
+ "type": "null"
515
+ }
516
+ ]
517
+ },
518
+ "incognito": {
519
+ "description": "Whether or not the webview should be launched in incognito mode.\n\n## Platform-specific:\n\n- **Android**: Unsupported.",
520
+ "default": false,
521
+ "type": "boolean"
687
522
  }
688
523
  },
689
524
  "additionalProperties": false
@@ -747,254 +582,273 @@
747
582
  }
748
583
  ]
749
584
  },
750
- "CliConfig": {
751
- "description": "describes a CLI configuration",
585
+ "WindowEffectsConfig": {
586
+ "description": "The window effects configuration object",
752
587
  "type": "object",
588
+ "required": [
589
+ "effects"
590
+ ],
753
591
  "properties": {
754
- "description": {
755
- "description": "Command description which will be shown on the help information.",
756
- "type": [
757
- "string",
758
- "null"
759
- ]
760
- },
761
- "longDescription": {
762
- "description": "Command long description which will be shown on the help information.",
763
- "type": [
764
- "string",
765
- "null"
766
- ]
767
- },
768
- "beforeHelp": {
769
- "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.",
770
- "type": [
771
- "string",
772
- "null"
773
- ]
592
+ "effects": {
593
+ "description": "List of Window effects to apply to the Window. Conflicting effects will apply the first one and ignore the rest.",
594
+ "type": "array",
595
+ "items": {
596
+ "$ref": "#/definitions/WindowEffect"
597
+ }
774
598
  },
775
- "afterHelp": {
776
- "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.",
777
- "type": [
778
- "string",
779
- "null"
599
+ "state": {
600
+ "description": "Window effect state **macOS Only**",
601
+ "anyOf": [
602
+ {
603
+ "$ref": "#/definitions/WindowEffectState"
604
+ },
605
+ {
606
+ "type": "null"
607
+ }
780
608
  ]
781
609
  },
782
- "args": {
783
- "description": "List of arguments for the command",
610
+ "radius": {
611
+ "description": "Window effect corner radius **macOS Only**",
784
612
  "type": [
785
- "array",
613
+ "number",
786
614
  "null"
787
615
  ],
788
- "items": {
789
- "$ref": "#/definitions/CliArg"
790
- }
616
+ "format": "double"
791
617
  },
792
- "subcommands": {
793
- "description": "List of subcommands of this command",
794
- "type": [
795
- "object",
796
- "null"
797
- ],
798
- "additionalProperties": {
799
- "$ref": "#/definitions/CliConfig"
800
- }
618
+ "color": {
619
+ "description": "Window effect color. Affects [`WindowEffect::Blur`] and [`WindowEffect::Acrylic`] only on Windows 10 v1903+. Doesn't have any effect on Windows 7 or Windows 11.",
620
+ "anyOf": [
621
+ {
622
+ "$ref": "#/definitions/Color"
623
+ },
624
+ {
625
+ "type": "null"
626
+ }
627
+ ]
801
628
  }
802
629
  },
803
630
  "additionalProperties": false
804
631
  },
805
- "CliArg": {
806
- "description": "A CLI argument definition.",
807
- "type": "object",
808
- "required": [
809
- "name"
810
- ],
811
- "properties": {
812
- "short": {
813
- "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.",
814
- "type": [
815
- "string",
816
- "null"
817
- ],
818
- "maxLength": 1,
819
- "minLength": 1
632
+ "WindowEffect": {
633
+ "description": "Platform-specific window effects",
634
+ "oneOf": [
635
+ {
636
+ "description": "A default material appropriate for the view's effectiveAppearance. **macOS 10.14-**",
637
+ "deprecated": true,
638
+ "type": "string",
639
+ "enum": [
640
+ "appearanceBased"
641
+ ]
820
642
  },
821
- "name": {
822
- "description": "The unique argument name",
823
- "type": "string"
643
+ {
644
+ "description": "*macOS 10.14-**",
645
+ "deprecated": true,
646
+ "type": "string",
647
+ "enum": [
648
+ "light"
649
+ ]
824
650
  },
825
- "description": {
826
- "description": "The argument description which will be shown on the help information. Typically, this is a short (one line) description of the arg.",
827
- "type": [
828
- "string",
829
- "null"
651
+ {
652
+ "description": "*macOS 10.14-**",
653
+ "deprecated": true,
654
+ "type": "string",
655
+ "enum": [
656
+ "dark"
830
657
  ]
831
658
  },
832
- "longDescription": {
833
- "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.",
834
- "type": [
835
- "string",
836
- "null"
659
+ {
660
+ "description": "*macOS 10.14-**",
661
+ "deprecated": true,
662
+ "type": "string",
663
+ "enum": [
664
+ "mediumLight"
837
665
  ]
838
666
  },
839
- "takesValue": {
840
- "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",
841
- "default": false,
842
- "type": "boolean"
667
+ {
668
+ "description": "*macOS 10.14-**",
669
+ "deprecated": true,
670
+ "type": "string",
671
+ "enum": [
672
+ "ultraDark"
673
+ ]
843
674
  },
844
- "multiple": {
845
- "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.",
846
- "default": false,
847
- "type": "boolean"
675
+ {
676
+ "description": "*macOS 10.10+**",
677
+ "type": "string",
678
+ "enum": [
679
+ "titlebar"
680
+ ]
848
681
  },
849
- "multipleOccurrences": {
850
- "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.",
851
- "default": false,
852
- "type": "boolean"
682
+ {
683
+ "description": "*macOS 10.10+**",
684
+ "type": "string",
685
+ "enum": [
686
+ "selection"
687
+ ]
853
688
  },
854
- "numberOfValues": {
855
- "description": "Specifies how many values are required to satisfy this argument. For example, if you had a `-f <file>` 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 <file> <file> <file> -f <file> <file> <file>` 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`.",
856
- "type": [
857
- "integer",
858
- "null"
859
- ],
860
- "format": "uint",
861
- "minimum": 0.0
689
+ {
690
+ "description": "*macOS 10.11+**",
691
+ "type": "string",
692
+ "enum": [
693
+ "menu"
694
+ ]
862
695
  },
863
- "possibleValues": {
864
- "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.",
865
- "type": [
866
- "array",
867
- "null"
868
- ],
869
- "items": {
870
- "type": "string"
871
- }
696
+ {
697
+ "description": "*macOS 10.11+**",
698
+ "type": "string",
699
+ "enum": [
700
+ "popover"
701
+ ]
872
702
  },
873
- "minValues": {
874
- "description": "Specifies the minimum number of values for this argument. For example, if you had a -f `<file>` 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.",
875
- "type": [
876
- "integer",
877
- "null"
878
- ],
879
- "format": "uint",
880
- "minimum": 0.0
703
+ {
704
+ "description": "*macOS 10.11+**",
705
+ "type": "string",
706
+ "enum": [
707
+ "sidebar"
708
+ ]
881
709
  },
882
- "maxValues": {
883
- "description": "Specifies the maximum number of values are for this argument. For example, if you had a -f `<file>` 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.",
884
- "type": [
885
- "integer",
886
- "null"
887
- ],
888
- "format": "uint",
889
- "minimum": 0.0
710
+ {
711
+ "description": "*macOS 10.14+**",
712
+ "type": "string",
713
+ "enum": [
714
+ "headerView"
715
+ ]
890
716
  },
891
- "required": {
892
- "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.",
893
- "default": false,
894
- "type": "boolean"
717
+ {
718
+ "description": "*macOS 10.14+**",
719
+ "type": "string",
720
+ "enum": [
721
+ "sheet"
722
+ ]
895
723
  },
896
- "requiredUnlessPresent": {
897
- "description": "Sets an arg that override this arg's required setting i.e. this arg will be required unless this other argument is present.",
898
- "type": [
899
- "string",
900
- "null"
724
+ {
725
+ "description": "*macOS 10.14+**",
726
+ "type": "string",
727
+ "enum": [
728
+ "windowBackground"
901
729
  ]
902
730
  },
903
- "requiredUnlessPresentAll": {
904
- "description": "Sets args that override this arg's required setting i.e. this arg will be required unless all these other arguments are present.",
905
- "type": [
906
- "array",
907
- "null"
908
- ],
909
- "items": {
910
- "type": "string"
911
- }
731
+ {
732
+ "description": "*macOS 10.14+**",
733
+ "type": "string",
734
+ "enum": [
735
+ "hudWindow"
736
+ ]
912
737
  },
913
- "requiredUnlessPresentAny": {
914
- "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.",
915
- "type": [
916
- "array",
917
- "null"
918
- ],
919
- "items": {
920
- "type": "string"
921
- }
738
+ {
739
+ "description": "*macOS 10.14+**",
740
+ "type": "string",
741
+ "enum": [
742
+ "fullScreenUI"
743
+ ]
922
744
  },
923
- "conflictsWith": {
924
- "description": "Sets a conflicting argument by name i.e. when using this argument, the following argument can't be present and vice versa.",
925
- "type": [
926
- "string",
927
- "null"
745
+ {
746
+ "description": "*macOS 10.14+**",
747
+ "type": "string",
748
+ "enum": [
749
+ "tooltip"
928
750
  ]
929
751
  },
930
- "conflictsWithAll": {
931
- "description": "The same as conflictsWith but allows specifying multiple two-way conflicts per argument.",
932
- "type": [
933
- "array",
934
- "null"
935
- ],
936
- "items": {
937
- "type": "string"
938
- }
752
+ {
753
+ "description": "*macOS 10.14+**",
754
+ "type": "string",
755
+ "enum": [
756
+ "contentBackground"
757
+ ]
939
758
  },
940
- "requires": {
941
- "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.",
942
- "type": [
943
- "string",
944
- "null"
759
+ {
760
+ "description": "*macOS 10.14+**",
761
+ "type": "string",
762
+ "enum": [
763
+ "underWindowBackground"
945
764
  ]
946
765
  },
947
- "requiresAll": {
948
- "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.",
949
- "type": [
950
- "array",
951
- "null"
952
- ],
953
- "items": {
954
- "type": "string"
955
- }
766
+ {
767
+ "description": "*macOS 10.14+**",
768
+ "type": "string",
769
+ "enum": [
770
+ "underPageBackground"
771
+ ]
956
772
  },
957
- "requiresIf": {
958
- "description": "Allows a conditional requirement with the signature [arg, value] the requirement will only become valid if `arg`'s value equals `${value}`.",
959
- "type": [
960
- "array",
961
- "null"
962
- ],
963
- "items": {
964
- "type": "string"
965
- }
773
+ {
774
+ "description": "*Windows 11 Only**",
775
+ "type": "string",
776
+ "enum": [
777
+ "mica"
778
+ ]
966
779
  },
967
- "requiredIfEq": {
968
- "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}`.",
969
- "type": [
970
- "array",
971
- "null"
972
- ],
973
- "items": {
974
- "type": "string"
975
- }
780
+ {
781
+ "description": "**Windows 7/10/11(22H1) Only**\n\n## Notes\n\nThis effect has bad performance when resizing/dragging the window on Windows 11 build 22621.",
782
+ "type": "string",
783
+ "enum": [
784
+ "blur"
785
+ ]
976
786
  },
977
- "requireEquals": {
978
- "description": "Requires that options use the --option=val syntax i.e. an equals between the option and associated value.",
979
- "type": [
980
- "boolean",
981
- "null"
787
+ {
788
+ "description": "**Windows 10/11 Only**\n\n## Notes\n\nThis effect has bad performance when resizing/dragging the window on Windows 10 v1903+ and Windows 11 build 22000.",
789
+ "type": "string",
790
+ "enum": [
791
+ "acrylic"
792
+ ]
793
+ }
794
+ ]
795
+ },
796
+ "WindowEffectState": {
797
+ "description": "Window effect state **macOS only**\n\n<https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>",
798
+ "oneOf": [
799
+ {
800
+ "description": "Make window effect state follow the window's active state",
801
+ "type": "string",
802
+ "enum": [
803
+ "followsWindowActiveState"
982
804
  ]
983
805
  },
984
- "index": {
985
- "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).",
986
- "type": [
987
- "integer",
988
- "null"
989
- ],
990
- "format": "uint",
991
- "minimum": 1.0
806
+ {
807
+ "description": "Make window effect state always active",
808
+ "type": "string",
809
+ "enum": [
810
+ "active"
811
+ ]
812
+ },
813
+ {
814
+ "description": "Make window effect state always inactive",
815
+ "type": "string",
816
+ "enum": [
817
+ "inactive"
818
+ ]
992
819
  }
993
- },
994
- "additionalProperties": false
820
+ ]
821
+ },
822
+ "Color": {
823
+ "description": "a tuple struct of RGBA colors. Each value has minimum of 0 and maximum of 255.",
824
+ "type": "array",
825
+ "items": [
826
+ {
827
+ "type": "integer",
828
+ "format": "uint8",
829
+ "minimum": 0.0
830
+ },
831
+ {
832
+ "type": "integer",
833
+ "format": "uint8",
834
+ "minimum": 0.0
835
+ },
836
+ {
837
+ "type": "integer",
838
+ "format": "uint8",
839
+ "minimum": 0.0
840
+ },
841
+ {
842
+ "type": "integer",
843
+ "format": "uint8",
844
+ "minimum": 0.0
845
+ }
846
+ ],
847
+ "maxItems": 4,
848
+ "minItems": 4
995
849
  },
996
850
  "BundleConfig": {
997
- "description": "Configuration for tauri-bundler.",
851
+ "description": "Configuration for tauri-bundler.\n\nSee more: https://tauri.app/v1/api/config#bundleconfig",
998
852
  "type": "object",
999
853
  "required": [
1000
854
  "identifier"
@@ -1006,7 +860,7 @@
1006
860
  "type": "boolean"
1007
861
  },
1008
862
  "targets": {
1009
- "description": "The bundle targets, currently supports [\"deb\", \"appimage\", \"msi\", \"app\", \"dmg\", \"updater\"] or \"all\".",
863
+ "description": "The bundle targets, currently supports [\"deb\", \"appimage\", \"nsis\", \"msi\", \"app\", \"dmg\", \"updater\"] or \"all\".",
1010
864
  "default": "all",
1011
865
  "allOf": [
1012
866
  {
@@ -1120,6 +974,7 @@
1120
974
  "allowDowngrades": true,
1121
975
  "certificateThumbprint": null,
1122
976
  "digestAlgorithm": null,
977
+ "nsis": null,
1123
978
  "timestampUrl": null,
1124
979
  "tsp": false,
1125
980
  "webviewFixedRuntimePath": null,
@@ -1143,6 +998,32 @@
1143
998
  "$ref": "#/definitions/IosConfig"
1144
999
  }
1145
1000
  ]
1001
+ },
1002
+ "android": {
1003
+ "description": "Android configuration.",
1004
+ "default": {
1005
+ "minSdkVersion": 24
1006
+ },
1007
+ "allOf": [
1008
+ {
1009
+ "$ref": "#/definitions/AndroidConfig"
1010
+ }
1011
+ ]
1012
+ },
1013
+ "updater": {
1014
+ "description": "The updater configuration.",
1015
+ "default": {
1016
+ "active": false,
1017
+ "pubkey": "",
1018
+ "windows": {
1019
+ "installMode": "passive"
1020
+ }
1021
+ },
1022
+ "allOf": [
1023
+ {
1024
+ "$ref": "#/definitions/UpdaterConfig"
1025
+ }
1026
+ ]
1146
1027
  }
1147
1028
  },
1148
1029
  "additionalProperties": false
@@ -1197,6 +1078,13 @@
1197
1078
  "msi"
1198
1079
  ]
1199
1080
  },
1081
+ {
1082
+ "description": "The NSIS bundle (.exe).",
1083
+ "type": "string",
1084
+ "enum": [
1085
+ "nsis"
1086
+ ]
1087
+ },
1200
1088
  {
1201
1089
  "description": "The macOS application bundle (.app).",
1202
1090
  "type": "string",
@@ -1221,7 +1109,7 @@
1221
1109
  ]
1222
1110
  },
1223
1111
  "AppImageConfig": {
1224
- "description": "Configuration for AppImage bundles.",
1112
+ "description": "Configuration for AppImage bundles.\n\nSee more: https://tauri.app/v1/api/config#appimageconfig",
1225
1113
  "type": "object",
1226
1114
  "properties": {
1227
1115
  "bundleMediaFramework": {
@@ -1233,7 +1121,7 @@
1233
1121
  "additionalProperties": false
1234
1122
  },
1235
1123
  "DebConfig": {
1236
- "description": "Configuration for Debian (.deb) bundles.",
1124
+ "description": "Configuration for Debian (.deb) bundles.\n\nSee more: https://tauri.app/v1/api/config#debconfig",
1237
1125
  "type": "object",
1238
1126
  "properties": {
1239
1127
  "depends": {
@@ -1253,12 +1141,19 @@
1253
1141
  "additionalProperties": {
1254
1142
  "type": "string"
1255
1143
  }
1144
+ },
1145
+ "desktopTemplate": {
1146
+ "description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
1147
+ "type": [
1148
+ "string",
1149
+ "null"
1150
+ ]
1256
1151
  }
1257
1152
  },
1258
1153
  "additionalProperties": false
1259
1154
  },
1260
1155
  "MacConfig": {
1261
- "description": "Configuration for the macOS bundles.",
1156
+ "description": "Configuration for the macOS bundles.\n\nSee more: https://tauri.app/v1/api/config#macconfig",
1262
1157
  "type": "object",
1263
1158
  "properties": {
1264
1159
  "frameworks": {
@@ -1318,7 +1213,7 @@
1318
1213
  "additionalProperties": false
1319
1214
  },
1320
1215
  "WindowsConfig": {
1321
- "description": "Windows bundler configuration.",
1216
+ "description": "Windows bundler configuration.\n\nSee more: https://tauri.app/v1/api/config#windowsconfig",
1322
1217
  "type": "object",
1323
1218
  "properties": {
1324
1219
  "digestAlgorithm": {
@@ -1381,6 +1276,17 @@
1381
1276
  "type": "null"
1382
1277
  }
1383
1278
  ]
1279
+ },
1280
+ "nsis": {
1281
+ "description": "Configuration for the installer generated with NSIS.",
1282
+ "anyOf": [
1283
+ {
1284
+ "$ref": "#/definitions/NsisConfig"
1285
+ },
1286
+ {
1287
+ "type": "null"
1288
+ }
1289
+ ]
1384
1290
  }
1385
1291
  },
1386
1292
  "additionalProperties": false
@@ -1405,7 +1311,7 @@
1405
1311
  "additionalProperties": false
1406
1312
  },
1407
1313
  {
1408
- "description": "Download the bootstrapper and run it. Requires internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
1314
+ "description": "Download the bootstrapper and run it. Requires an internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
1409
1315
  "type": "object",
1410
1316
  "required": [
1411
1317
  "type"
@@ -1426,7 +1332,7 @@
1426
1332
  "additionalProperties": false
1427
1333
  },
1428
1334
  {
1429
- "description": "Embed the bootstrapper and run it. Requires internet connection. Increases the installer size by around 1.8MB, but offers better support on Windows 7.",
1335
+ "description": "Embed the bootstrapper and run it. Requires an internet connection. Increases the installer size by around 1.8MB, but offers better support on Windows 7.",
1430
1336
  "type": "object",
1431
1337
  "required": [
1432
1338
  "type"
@@ -1447,7 +1353,7 @@
1447
1353
  "additionalProperties": false
1448
1354
  },
1449
1355
  {
1450
- "description": "Embed the offline installer and run it. Does not require internet connection. Increases the installer size by around 127MB.",
1356
+ "description": "Embed the offline installer and run it. Does not require an internet connection. Increases the installer size by around 127MB.",
1451
1357
  "type": "object",
1452
1358
  "required": [
1453
1359
  "type"
@@ -1491,7 +1397,7 @@
1491
1397
  ]
1492
1398
  },
1493
1399
  "WixConfig": {
1494
- "description": "Configuration for the MSI bundle using WiX.",
1400
+ "description": "Configuration for the MSI bundle using WiX.\n\nSee more: https://tauri.app/v1/api/config#wixconfig",
1495
1401
  "type": "object",
1496
1402
  "properties": {
1497
1403
  "language": {
@@ -1616,7 +1522,7 @@
1616
1522
  ]
1617
1523
  },
1618
1524
  "WixLanguageConfig": {
1619
- "description": "Configuration for a target language for the WiX build.",
1525
+ "description": "Configuration for a target language for the WiX build.\n\nSee more: https://tauri.app/v1/api/config#wixlanguageconfig",
1620
1526
  "type": "object",
1621
1527
  "properties": {
1622
1528
  "localePath": {
@@ -1629,840 +1535,208 @@
1629
1535
  },
1630
1536
  "additionalProperties": false
1631
1537
  },
1632
- "IosConfig": {
1633
- "description": "General configuration for the iOS target.",
1538
+ "NsisConfig": {
1539
+ "description": "Configuration for the Installer bundle using NSIS.",
1634
1540
  "type": "object",
1635
1541
  "properties": {
1636
- "developmentTeam": {
1637
- "description": "The development team. This value is required for iOS development because code signing is enforced. The `TAURI_APPLE_DEVELOPMENT_TEAM` environment variable can be set to overwrite it.",
1542
+ "template": {
1543
+ "description": "A custom .nsi template to use.",
1638
1544
  "type": [
1639
1545
  "string",
1640
1546
  "null"
1641
1547
  ]
1642
- }
1643
- },
1644
- "additionalProperties": false
1645
- },
1646
- "AllowlistConfig": {
1647
- "description": "Allowlist configuration.",
1648
- "type": "object",
1649
- "properties": {
1650
- "all": {
1651
- "description": "Use this flag to enable all API features.",
1652
- "default": false,
1653
- "type": "boolean"
1654
1548
  },
1655
- "fs": {
1656
- "description": "File system API allowlist.",
1657
- "default": {
1658
- "all": false,
1659
- "copyFile": false,
1660
- "createDir": false,
1661
- "exists": false,
1662
- "readDir": false,
1663
- "readFile": false,
1664
- "removeDir": false,
1665
- "removeFile": false,
1666
- "renameFile": false,
1667
- "scope": [],
1668
- "writeFile": false
1669
- },
1670
- "allOf": [
1671
- {
1672
- "$ref": "#/definitions/FsAllowlistConfig"
1673
- }
1549
+ "license": {
1550
+ "description": "The path to the license file to render on the installer.",
1551
+ "type": [
1552
+ "string",
1553
+ "null"
1674
1554
  ]
1675
1555
  },
1676
- "window": {
1677
- "description": "Window API allowlist.",
1678
- "default": {
1679
- "all": false,
1680
- "center": false,
1681
- "close": false,
1682
- "create": false,
1683
- "hide": false,
1684
- "maximize": false,
1685
- "minimize": false,
1686
- "print": false,
1687
- "requestUserAttention": false,
1688
- "setAlwaysOnTop": false,
1689
- "setCursorGrab": false,
1690
- "setCursorIcon": false,
1691
- "setCursorPosition": false,
1692
- "setCursorVisible": false,
1693
- "setDecorations": false,
1694
- "setFocus": false,
1695
- "setFullscreen": false,
1696
- "setIcon": false,
1697
- "setIgnoreCursorEvents": false,
1698
- "setMaxSize": false,
1699
- "setMinSize": false,
1700
- "setPosition": false,
1701
- "setResizable": false,
1702
- "setSize": false,
1703
- "setSkipTaskbar": false,
1704
- "setTitle": false,
1705
- "show": false,
1706
- "startDragging": false,
1707
- "unmaximize": false,
1708
- "unminimize": false
1709
- },
1710
- "allOf": [
1711
- {
1712
- "$ref": "#/definitions/WindowAllowlistConfig"
1713
- }
1556
+ "headerImage": {
1557
+ "description": "The path to a bitmap file to display on the header of installers pages.\n\nThe recommended dimensions are 150px x 57px.",
1558
+ "type": [
1559
+ "string",
1560
+ "null"
1714
1561
  ]
1715
1562
  },
1716
- "shell": {
1717
- "description": "Shell API allowlist.",
1718
- "default": {
1719
- "all": false,
1720
- "execute": false,
1721
- "open": false,
1722
- "scope": [],
1723
- "sidecar": false
1724
- },
1725
- "allOf": [
1726
- {
1727
- "$ref": "#/definitions/ShellAllowlistConfig"
1728
- }
1563
+ "sidebarImage": {
1564
+ "description": "The path to a bitmap file for the Welcome page and the Finish page.\n\nThe recommended dimensions are 164px x 314px.",
1565
+ "type": [
1566
+ "string",
1567
+ "null"
1729
1568
  ]
1730
1569
  },
1731
- "dialog": {
1732
- "description": "Dialog API allowlist.",
1733
- "default": {
1734
- "all": false,
1735
- "ask": false,
1736
- "confirm": false,
1737
- "message": false,
1738
- "open": false,
1739
- "save": false
1740
- },
1741
- "allOf": [
1742
- {
1743
- "$ref": "#/definitions/DialogAllowlistConfig"
1744
- }
1570
+ "installerIcon": {
1571
+ "description": "The path to an icon file used as the installer icon.",
1572
+ "type": [
1573
+ "string",
1574
+ "null"
1745
1575
  ]
1746
1576
  },
1747
- "http": {
1748
- "description": "HTTP API allowlist.",
1749
- "default": {
1750
- "all": false,
1751
- "request": false,
1752
- "scope": []
1753
- },
1577
+ "installMode": {
1578
+ "description": "Whether the installation will be for all users or just the current user.",
1579
+ "default": "currentUser",
1754
1580
  "allOf": [
1755
1581
  {
1756
- "$ref": "#/definitions/HttpAllowlistConfig"
1582
+ "$ref": "#/definitions/NSISInstallerMode"
1757
1583
  }
1758
1584
  ]
1759
1585
  },
1760
- "notification": {
1761
- "description": "Notification API allowlist.",
1762
- "default": {
1763
- "all": false
1764
- },
1765
- "allOf": [
1766
- {
1767
- "$ref": "#/definitions/NotificationAllowlistConfig"
1768
- }
1769
- ]
1586
+ "languages": {
1587
+ "description": "A list of installer languages. By default the OS language is used. If the OS language is not in the list of languages, the first language will be used. To allow the user to select the language, set `display_language_selector` to `true`.\n\nSee <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> for the complete list of languages.",
1588
+ "type": [
1589
+ "array",
1590
+ "null"
1591
+ ],
1592
+ "items": {
1593
+ "type": "string"
1594
+ }
1770
1595
  },
1771
- "globalShortcut": {
1772
- "description": "Global shortcut API allowlist.",
1773
- "default": {
1774
- "all": false
1775
- },
1776
- "allOf": [
1777
- {
1778
- "$ref": "#/definitions/GlobalShortcutAllowlistConfig"
1779
- }
1596
+ "customLanguageFiles": {
1597
+ "description": "A key-value pair where the key is the language and the value is the path to a custom `.nsh` file that holds the translated text for tauri's custom messages.\n\nSee <https://github.com/tauri-apps/tauri/blob/dev/tooling/bundler/src/bundle/windows/templates/nsis-languages/English.nsh> for an example `.nsh` file.\n\n**Note**: the key must be a valid NSIS language and it must be added to [`NsisConfig`] languages array,",
1598
+ "type": [
1599
+ "object",
1600
+ "null"
1601
+ ],
1602
+ "additionalProperties": {
1603
+ "type": "string"
1604
+ }
1605
+ },
1606
+ "displayLanguageSelector": {
1607
+ "description": "Whether to display a language selector dialog before the installer and uninstaller windows are rendered or not. By default the OS language is selected, with a fallback to the first language in the `languages` array.",
1608
+ "default": false,
1609
+ "type": "boolean"
1610
+ }
1611
+ },
1612
+ "additionalProperties": false
1613
+ },
1614
+ "NSISInstallerMode": {
1615
+ "description": "Install Modes for the NSIS installer.",
1616
+ "oneOf": [
1617
+ {
1618
+ "description": "Default mode for the installer.\n\nInstall the app by default in a directory that doesn't require Administrator access.\n\nInstaller metadata will be saved under the `HKCU` registry path.",
1619
+ "type": "string",
1620
+ "enum": [
1621
+ "currentUser"
1780
1622
  ]
1781
1623
  },
1782
- "os": {
1783
- "description": "OS allowlist.",
1784
- "default": {
1785
- "all": false
1786
- },
1787
- "allOf": [
1788
- {
1789
- "$ref": "#/definitions/OsAllowlistConfig"
1790
- }
1624
+ {
1625
+ "description": "Install the app by default in the `Program Files` folder directory requires Administrator access for the installation.\n\nInstaller metadata will be saved under the `HKLM` registry path.",
1626
+ "type": "string",
1627
+ "enum": [
1628
+ "perMachine"
1791
1629
  ]
1792
1630
  },
1793
- "path": {
1794
- "description": "Path API allowlist.",
1795
- "default": {
1796
- "all": false
1797
- },
1798
- "allOf": [
1799
- {
1800
- "$ref": "#/definitions/PathAllowlistConfig"
1801
- }
1802
- ]
1803
- },
1804
- "protocol": {
1805
- "description": "Custom protocol allowlist.",
1806
- "default": {
1807
- "all": false,
1808
- "asset": false,
1809
- "assetScope": []
1810
- },
1811
- "allOf": [
1812
- {
1813
- "$ref": "#/definitions/ProtocolAllowlistConfig"
1814
- }
1815
- ]
1816
- },
1817
- "process": {
1818
- "description": "Process API allowlist.",
1819
- "default": {
1820
- "all": false,
1821
- "exit": false,
1822
- "relaunch": false,
1823
- "relaunchDangerousAllowSymlinkMacos": false
1824
- },
1825
- "allOf": [
1826
- {
1827
- "$ref": "#/definitions/ProcessAllowlistConfig"
1828
- }
1829
- ]
1830
- },
1831
- "clipboard": {
1832
- "description": "Clipboard APIs allowlist.",
1833
- "default": {
1834
- "all": false,
1835
- "readText": false,
1836
- "writeText": false
1837
- },
1838
- "allOf": [
1839
- {
1840
- "$ref": "#/definitions/ClipboardAllowlistConfig"
1841
- }
1842
- ]
1843
- },
1844
- "app": {
1845
- "description": "App APIs allowlist.",
1846
- "default": {
1847
- "all": false,
1848
- "hide": false,
1849
- "show": false
1850
- },
1851
- "allOf": [
1852
- {
1853
- "$ref": "#/definitions/AppAllowlistConfig"
1854
- }
1855
- ]
1856
- }
1857
- },
1858
- "additionalProperties": false
1859
- },
1860
- "FsAllowlistConfig": {
1861
- "description": "Allowlist for the file system APIs.",
1862
- "type": "object",
1863
- "properties": {
1864
- "scope": {
1865
- "description": "The access scope for the filesystem APIs.",
1866
- "default": [],
1867
- "allOf": [
1868
- {
1869
- "$ref": "#/definitions/FsAllowlistScope"
1870
- }
1871
- ]
1872
- },
1873
- "all": {
1874
- "description": "Use this flag to enable all file system API features.",
1875
- "default": false,
1876
- "type": "boolean"
1877
- },
1878
- "readFile": {
1879
- "description": "Read file from local filesystem.",
1880
- "default": false,
1881
- "type": "boolean"
1882
- },
1883
- "writeFile": {
1884
- "description": "Write file to local filesystem.",
1885
- "default": false,
1886
- "type": "boolean"
1887
- },
1888
- "readDir": {
1889
- "description": "Read directory from local filesystem.",
1890
- "default": false,
1891
- "type": "boolean"
1892
- },
1893
- "copyFile": {
1894
- "description": "Copy file from local filesystem.",
1895
- "default": false,
1896
- "type": "boolean"
1897
- },
1898
- "createDir": {
1899
- "description": "Create directory from local filesystem.",
1900
- "default": false,
1901
- "type": "boolean"
1902
- },
1903
- "removeDir": {
1904
- "description": "Remove directory from local filesystem.",
1905
- "default": false,
1906
- "type": "boolean"
1907
- },
1908
- "removeFile": {
1909
- "description": "Remove file from local filesystem.",
1910
- "default": false,
1911
- "type": "boolean"
1912
- },
1913
- "renameFile": {
1914
- "description": "Rename file from local filesystem.",
1915
- "default": false,
1916
- "type": "boolean"
1917
- },
1918
- "exists": {
1919
- "description": "Check if path exists on the local filesystem.",
1920
- "default": false,
1921
- "type": "boolean"
1922
- }
1923
- },
1924
- "additionalProperties": false
1925
- },
1926
- "FsAllowlistScope": {
1927
- "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`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
1928
- "anyOf": [
1929
- {
1930
- "description": "A list of paths that are allowed by this scope.",
1931
- "type": "array",
1932
- "items": {
1933
- "type": "string"
1934
- }
1935
- },
1936
- {
1937
- "description": "A complete scope configuration.",
1938
- "type": "object",
1939
- "properties": {
1940
- "allow": {
1941
- "description": "A list of paths that are allowed by this scope.",
1942
- "default": [],
1943
- "type": "array",
1944
- "items": {
1945
- "type": "string"
1946
- }
1947
- },
1948
- "deny": {
1949
- "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
1950
- "default": [],
1951
- "type": "array",
1952
- "items": {
1953
- "type": "string"
1954
- }
1955
- }
1956
- }
1957
- }
1958
- ]
1959
- },
1960
- "WindowAllowlistConfig": {
1961
- "description": "Allowlist for the window APIs.",
1962
- "type": "object",
1963
- "properties": {
1964
- "all": {
1965
- "description": "Use this flag to enable all window API features.",
1966
- "default": false,
1967
- "type": "boolean"
1968
- },
1969
- "create": {
1970
- "description": "Allows dynamic window creation.",
1971
- "default": false,
1972
- "type": "boolean"
1973
- },
1974
- "center": {
1975
- "description": "Allows centering the window.",
1976
- "default": false,
1977
- "type": "boolean"
1978
- },
1979
- "requestUserAttention": {
1980
- "description": "Allows requesting user attention on the window.",
1981
- "default": false,
1982
- "type": "boolean"
1983
- },
1984
- "setResizable": {
1985
- "description": "Allows setting the resizable flag of the window.",
1986
- "default": false,
1987
- "type": "boolean"
1988
- },
1989
- "setTitle": {
1990
- "description": "Allows changing the window title.",
1991
- "default": false,
1992
- "type": "boolean"
1993
- },
1994
- "maximize": {
1995
- "description": "Allows maximizing the window.",
1996
- "default": false,
1997
- "type": "boolean"
1998
- },
1999
- "unmaximize": {
2000
- "description": "Allows unmaximizing the window.",
2001
- "default": false,
2002
- "type": "boolean"
2003
- },
2004
- "minimize": {
2005
- "description": "Allows minimizing the window.",
2006
- "default": false,
2007
- "type": "boolean"
2008
- },
2009
- "unminimize": {
2010
- "description": "Allows unminimizing the window.",
2011
- "default": false,
2012
- "type": "boolean"
2013
- },
2014
- "show": {
2015
- "description": "Allows showing the window.",
2016
- "default": false,
2017
- "type": "boolean"
2018
- },
2019
- "hide": {
2020
- "description": "Allows hiding the window.",
2021
- "default": false,
2022
- "type": "boolean"
2023
- },
2024
- "close": {
2025
- "description": "Allows closing the window.",
2026
- "default": false,
2027
- "type": "boolean"
2028
- },
2029
- "setDecorations": {
2030
- "description": "Allows setting the decorations flag of the window.",
2031
- "default": false,
2032
- "type": "boolean"
2033
- },
2034
- "setAlwaysOnTop": {
2035
- "description": "Allows setting the always_on_top flag of the window.",
2036
- "default": false,
2037
- "type": "boolean"
2038
- },
2039
- "setSize": {
2040
- "description": "Allows setting the window size.",
2041
- "default": false,
2042
- "type": "boolean"
2043
- },
2044
- "setMinSize": {
2045
- "description": "Allows setting the window minimum size.",
2046
- "default": false,
2047
- "type": "boolean"
2048
- },
2049
- "setMaxSize": {
2050
- "description": "Allows setting the window maximum size.",
2051
- "default": false,
2052
- "type": "boolean"
2053
- },
2054
- "setPosition": {
2055
- "description": "Allows changing the position of the window.",
2056
- "default": false,
2057
- "type": "boolean"
2058
- },
2059
- "setFullscreen": {
2060
- "description": "Allows setting the fullscreen flag of the window.",
2061
- "default": false,
2062
- "type": "boolean"
2063
- },
2064
- "setFocus": {
2065
- "description": "Allows focusing the window.",
2066
- "default": false,
2067
- "type": "boolean"
2068
- },
2069
- "setIcon": {
2070
- "description": "Allows changing the window icon.",
2071
- "default": false,
2072
- "type": "boolean"
2073
- },
2074
- "setSkipTaskbar": {
2075
- "description": "Allows setting the skip_taskbar flag of the window.",
2076
- "default": false,
2077
- "type": "boolean"
2078
- },
2079
- "setCursorGrab": {
2080
- "description": "Allows grabbing the cursor.",
2081
- "default": false,
2082
- "type": "boolean"
2083
- },
2084
- "setCursorVisible": {
2085
- "description": "Allows setting the cursor visibility.",
2086
- "default": false,
2087
- "type": "boolean"
2088
- },
2089
- "setCursorIcon": {
2090
- "description": "Allows changing the cursor icon.",
2091
- "default": false,
2092
- "type": "boolean"
2093
- },
2094
- "setCursorPosition": {
2095
- "description": "Allows setting the cursor position.",
2096
- "default": false,
2097
- "type": "boolean"
2098
- },
2099
- "setIgnoreCursorEvents": {
2100
- "description": "Allows ignoring cursor events.",
2101
- "default": false,
2102
- "type": "boolean"
2103
- },
2104
- "startDragging": {
2105
- "description": "Allows start dragging on the window.",
2106
- "default": false,
2107
- "type": "boolean"
2108
- },
2109
- "print": {
2110
- "description": "Allows opening the system dialog to print the window content.",
2111
- "default": false,
2112
- "type": "boolean"
2113
- }
2114
- },
2115
- "additionalProperties": false
2116
- },
2117
- "ShellAllowlistConfig": {
2118
- "description": "Allowlist for the shell APIs.",
2119
- "type": "object",
2120
- "properties": {
2121
- "scope": {
2122
- "description": "Access scope for the binary execution APIs. Sidecars are automatically enabled.",
2123
- "default": [],
2124
- "allOf": [
2125
- {
2126
- "$ref": "#/definitions/ShellAllowlistScope"
2127
- }
2128
- ]
2129
- },
2130
- "all": {
2131
- "description": "Use this flag to enable all shell API features.",
2132
- "default": false,
2133
- "type": "boolean"
2134
- },
2135
- "execute": {
2136
- "description": "Enable binary execution.",
2137
- "default": false,
2138
- "type": "boolean"
2139
- },
2140
- "sidecar": {
2141
- "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 <https://tauri.app/v1/guides/building/sidecar>.",
2142
- "default": false,
2143
- "type": "boolean"
2144
- },
2145
- "open": {
2146
- "description": "Open URL with the user's default application.",
2147
- "default": false,
2148
- "allOf": [
2149
- {
2150
- "$ref": "#/definitions/ShellAllowlistOpen"
2151
- }
2152
- ]
2153
- }
2154
- },
2155
- "additionalProperties": false
2156
- },
2157
- "ShellAllowlistScope": {
2158
- "description": "Shell scope definition. It is a list of command names and associated CLI arguments that restrict the API access from the webview.",
2159
- "type": "array",
2160
- "items": {
2161
- "$ref": "#/definitions/ShellAllowedCommand"
2162
- }
2163
- },
2164
- "ShellAllowedCommand": {
2165
- "description": "A command allowed to be executed by the webview API.",
2166
- "type": "object",
2167
- "required": [
2168
- "name"
2169
- ],
2170
- "properties": {
2171
- "name": {
2172
- "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.",
2173
- "type": "string"
2174
- },
2175
- "cmd": {
2176
- "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`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
2177
- "default": "",
2178
- "type": "string"
2179
- },
2180
- "args": {
2181
- "description": "The allowed arguments for the command execution.",
2182
- "default": false,
2183
- "allOf": [
2184
- {
2185
- "$ref": "#/definitions/ShellAllowedArgs"
2186
- }
2187
- ]
2188
- },
2189
- "sidecar": {
2190
- "description": "If this command is a sidecar command.",
2191
- "default": false,
2192
- "type": "boolean"
2193
- }
2194
- }
2195
- },
2196
- "ShellAllowedArgs": {
2197
- "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.",
2198
- "anyOf": [
2199
- {
2200
- "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.",
2201
- "type": "boolean"
2202
- },
2203
- {
2204
- "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.",
2205
- "type": "array",
2206
- "items": {
2207
- "$ref": "#/definitions/ShellAllowedArg"
2208
- }
2209
- }
2210
- ]
2211
- },
2212
- "ShellAllowedArg": {
2213
- "description": "A command argument allowed to be executed by the webview API.",
2214
- "anyOf": [
2215
- {
2216
- "description": "A non-configurable argument that is passed to the command in the order it was specified.",
2217
- "type": "string"
2218
- },
2219
- {
2220
- "description": "A variable that is set while calling the command from the webview API.",
2221
- "type": "object",
2222
- "required": [
2223
- "validator"
2224
- ],
2225
- "properties": {
2226
- "validator": {
2227
- "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",
2228
- "type": "string"
2229
- }
2230
- },
2231
- "additionalProperties": false
2232
- }
2233
- ]
2234
- },
2235
- "ShellAllowlistOpen": {
2236
- "description": "Defines the `shell > open` api scope.",
2237
- "anyOf": [
2238
- {
2239
- "description": "If the shell open API should be enabled.\n\nIf enabled, the default validation regex (`^https?://`) is used.",
2240
- "type": "boolean"
2241
- },
2242
- {
2243
- "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`.",
2244
- "type": "string"
2245
- }
2246
- ]
2247
- },
2248
- "DialogAllowlistConfig": {
2249
- "description": "Allowlist for the dialog APIs.",
2250
- "type": "object",
2251
- "properties": {
2252
- "all": {
2253
- "description": "Use this flag to enable all dialog API features.",
2254
- "default": false,
2255
- "type": "boolean"
2256
- },
2257
- "open": {
2258
- "description": "Allows the API to open a dialog window to pick files.",
2259
- "default": false,
2260
- "type": "boolean"
2261
- },
2262
- "save": {
2263
- "description": "Allows the API to open a dialog window to pick where to save files.",
2264
- "default": false,
2265
- "type": "boolean"
2266
- },
2267
- "message": {
2268
- "description": "Allows the API to show a message dialog window.",
2269
- "default": false,
2270
- "type": "boolean"
2271
- },
2272
- "ask": {
2273
- "description": "Allows the API to show a dialog window with Yes/No buttons.",
2274
- "default": false,
2275
- "type": "boolean"
2276
- },
2277
- "confirm": {
2278
- "description": "Allows the API to show a dialog window with Ok/Cancel buttons.",
2279
- "default": false,
2280
- "type": "boolean"
2281
- }
2282
- },
2283
- "additionalProperties": false
2284
- },
2285
- "HttpAllowlistConfig": {
2286
- "description": "Allowlist for the HTTP APIs.",
2287
- "type": "object",
2288
- "properties": {
2289
- "scope": {
2290
- "description": "The access scope for the HTTP APIs.",
2291
- "default": [],
2292
- "allOf": [
2293
- {
2294
- "$ref": "#/definitions/HttpAllowlistScope"
2295
- }
1631
+ {
1632
+ "description": "Combines both modes and allows the user to choose at install time whether to install for the current user or per machine. Note that this mode will require Administrator access even if the user wants to install it for the current user only.\n\nInstaller metadata will be saved under the `HKLM` or `HKCU` registry path based on the user's choice.",
1633
+ "type": "string",
1634
+ "enum": [
1635
+ "both"
2296
1636
  ]
2297
- },
2298
- "all": {
2299
- "description": "Use this flag to enable all HTTP API features.",
2300
- "default": false,
2301
- "type": "boolean"
2302
- },
2303
- "request": {
2304
- "description": "Allows making HTTP requests.",
2305
- "default": false,
2306
- "type": "boolean"
2307
- }
2308
- },
2309
- "additionalProperties": false
2310
- },
2311
- "HttpAllowlistScope": {
2312
- "description": "HTTP API scope definition. It is a list of URLs that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\nExamples: - \"https://**\": allows all HTTPS urls - \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path - \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
2313
- "type": "array",
2314
- "items": {
2315
- "type": "string",
2316
- "format": "uri"
2317
- }
2318
- },
2319
- "NotificationAllowlistConfig": {
2320
- "description": "Allowlist for the notification APIs.",
2321
- "type": "object",
2322
- "properties": {
2323
- "all": {
2324
- "description": "Use this flag to enable all notification API features.",
2325
- "default": false,
2326
- "type": "boolean"
2327
1637
  }
2328
- },
2329
- "additionalProperties": false
1638
+ ]
2330
1639
  },
2331
- "GlobalShortcutAllowlistConfig": {
2332
- "description": "Allowlist for the global shortcut APIs.",
1640
+ "IosConfig": {
1641
+ "description": "General configuration for the iOS target.",
2333
1642
  "type": "object",
2334
1643
  "properties": {
2335
- "all": {
2336
- "description": "Use this flag to enable all global shortcut API features.",
2337
- "default": false,
2338
- "type": "boolean"
1644
+ "developmentTeam": {
1645
+ "description": "The development team. This value is required for iOS development because code signing is enforced. The `TAURI_APPLE_DEVELOPMENT_TEAM` environment variable can be set to overwrite it.",
1646
+ "type": [
1647
+ "string",
1648
+ "null"
1649
+ ]
2339
1650
  }
2340
1651
  },
2341
1652
  "additionalProperties": false
2342
1653
  },
2343
- "OsAllowlistConfig": {
2344
- "description": "Allowlist for the OS APIs.",
1654
+ "AndroidConfig": {
1655
+ "description": "General configuration for the iOS target.",
2345
1656
  "type": "object",
2346
1657
  "properties": {
2347
- "all": {
2348
- "description": "Use this flag to enable all OS API features.",
2349
- "default": false,
2350
- "type": "boolean"
1658
+ "minSdkVersion": {
1659
+ "description": "The minimum API level required for the application to run. The Android system will prevent the user from installing the application if the system's API level is lower than the value specified.",
1660
+ "default": 24,
1661
+ "type": "integer",
1662
+ "format": "uint32",
1663
+ "minimum": 0.0
2351
1664
  }
2352
1665
  },
2353
1666
  "additionalProperties": false
2354
1667
  },
2355
- "PathAllowlistConfig": {
2356
- "description": "Allowlist for the path APIs.",
1668
+ "UpdaterConfig": {
1669
+ "description": "The Updater configuration object.\n\nSee more: https://tauri.app/v1/api/config#updaterconfig",
2357
1670
  "type": "object",
2358
1671
  "properties": {
2359
- "all": {
2360
- "description": "Use this flag to enable all path API features.",
1672
+ "active": {
1673
+ "description": "Whether the updater is active or not.",
2361
1674
  "default": false,
2362
1675
  "type": "boolean"
2363
- }
2364
- },
2365
- "additionalProperties": false
2366
- },
2367
- "ProtocolAllowlistConfig": {
2368
- "description": "Allowlist for the custom protocols.",
2369
- "type": "object",
2370
- "properties": {
2371
- "assetScope": {
2372
- "description": "The access scope for the asset protocol.",
2373
- "default": [],
1676
+ },
1677
+ "pubkey": {
1678
+ "description": "Signature public key.",
1679
+ "default": "",
1680
+ "type": "string"
1681
+ },
1682
+ "windows": {
1683
+ "description": "The Windows configuration for the updater.",
1684
+ "default": {
1685
+ "installMode": "passive"
1686
+ },
2374
1687
  "allOf": [
2375
1688
  {
2376
- "$ref": "#/definitions/FsAllowlistScope"
1689
+ "$ref": "#/definitions/UpdaterWindowsConfig"
2377
1690
  }
2378
1691
  ]
2379
- },
2380
- "all": {
2381
- "description": "Use this flag to enable all custom protocols.",
2382
- "default": false,
2383
- "type": "boolean"
2384
- },
2385
- "asset": {
2386
- "description": "Enables the asset protocol.",
2387
- "default": false,
2388
- "type": "boolean"
2389
- }
2390
- },
2391
- "additionalProperties": false
2392
- },
2393
- "ProcessAllowlistConfig": {
2394
- "description": "Allowlist for the process APIs.",
2395
- "type": "object",
2396
- "properties": {
2397
- "all": {
2398
- "description": "Use this flag to enable all process APIs.",
2399
- "default": false,
2400
- "type": "boolean"
2401
- },
2402
- "relaunch": {
2403
- "description": "Enables the relaunch API.",
2404
- "default": false,
2405
- "type": "boolean"
2406
- },
2407
- "relaunchDangerousAllowSymlinkMacos": {
2408
- "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.",
2409
- "default": false,
2410
- "type": "boolean"
2411
- },
2412
- "exit": {
2413
- "description": "Enables the exit API.",
2414
- "default": false,
2415
- "type": "boolean"
2416
1692
  }
2417
1693
  },
2418
1694
  "additionalProperties": false
2419
1695
  },
2420
- "ClipboardAllowlistConfig": {
2421
- "description": "Allowlist for the clipboard APIs.",
1696
+ "UpdaterWindowsConfig": {
1697
+ "description": "The updater configuration for Windows.\n\nSee more: https://tauri.app/v1/api/config#updaterwindowsconfig",
2422
1698
  "type": "object",
2423
1699
  "properties": {
2424
- "all": {
2425
- "description": "Use this flag to enable all clipboard APIs.",
2426
- "default": false,
2427
- "type": "boolean"
2428
- },
2429
- "writeText": {
2430
- "description": "Enables the clipboard's `writeText` API.",
2431
- "default": false,
2432
- "type": "boolean"
2433
- },
2434
- "readText": {
2435
- "description": "Enables the clipboard's `readText` API.",
2436
- "default": false,
2437
- "type": "boolean"
1700
+ "installMode": {
1701
+ "description": "The installation mode for the update on Windows. Defaults to `passive`.",
1702
+ "default": "passive",
1703
+ "allOf": [
1704
+ {
1705
+ "$ref": "#/definitions/WindowsUpdateInstallMode"
1706
+ }
1707
+ ]
2438
1708
  }
2439
1709
  },
2440
1710
  "additionalProperties": false
2441
1711
  },
2442
- "AppAllowlistConfig": {
2443
- "description": "Allowlist for the app APIs.",
2444
- "type": "object",
2445
- "properties": {
2446
- "all": {
2447
- "description": "Use this flag to enable all app APIs.",
2448
- "default": false,
2449
- "type": "boolean"
1712
+ "WindowsUpdateInstallMode": {
1713
+ "description": "Install modes for the Windows update.",
1714
+ "oneOf": [
1715
+ {
1716
+ "description": "Specifies there's a basic UI during the installation process, including a final dialog box at the end.",
1717
+ "type": "string",
1718
+ "enum": [
1719
+ "basicUi"
1720
+ ]
2450
1721
  },
2451
- "show": {
2452
- "description": "Enables the app's `show` API.",
2453
- "default": false,
2454
- "type": "boolean"
1722
+ {
1723
+ "description": "The quiet mode means there's no user interaction required. Requires admin privileges if the installer does.",
1724
+ "type": "string",
1725
+ "enum": [
1726
+ "quiet"
1727
+ ]
2455
1728
  },
2456
- "hide": {
2457
- "description": "Enables the app's `hide` API.",
2458
- "default": false,
2459
- "type": "boolean"
1729
+ {
1730
+ "description": "Specifies unattended mode, which means the installation only shows a progress bar.",
1731
+ "type": "string",
1732
+ "enum": [
1733
+ "passive"
1734
+ ]
2460
1735
  }
2461
- },
2462
- "additionalProperties": false
1736
+ ]
2463
1737
  },
2464
1738
  "SecurityConfig": {
2465
- "description": "Security configuration.",
1739
+ "description": "Security configuration.\n\nSee more: https://tauri.app/v1/api/config#securityconfig",
2466
1740
  "type": "object",
2467
1741
  "properties": {
2468
1742
  "csp": {
@@ -2500,6 +1774,26 @@
2500
1774
  "$ref": "#/definitions/DisabledCspModificationKind"
2501
1775
  }
2502
1776
  ]
1777
+ },
1778
+ "dangerousRemoteDomainIpcAccess": {
1779
+ "description": "Allow external domains to send command to Tauri.\n\nBy default, external domains do not have access to `window.__TAURI__`, which means they cannot communicate with the commands defined in Rust. This prevents attacks where an externally loaded malicious or compromised sites could start executing commands on the user's device.\n\nThis configuration allows a set of external domains to have access to the Tauri commands. When you configure a domain to be allowed to access the IPC, all subpaths are allowed. Subdomains are not allowed.\n\n**WARNING:** Only use this option if you either have internal checks against malicious external sites or you can trust the allowed external sites. You application might be vulnerable to dangerous Tauri command related attacks otherwise.",
1780
+ "default": [],
1781
+ "type": "array",
1782
+ "items": {
1783
+ "$ref": "#/definitions/RemoteDomainAccessScope"
1784
+ }
1785
+ },
1786
+ "assetProtocol": {
1787
+ "description": "Custom protocol config.",
1788
+ "default": {
1789
+ "enable": false,
1790
+ "scope": []
1791
+ },
1792
+ "allOf": [
1793
+ {
1794
+ "$ref": "#/definitions/AssetProtocolConfig"
1795
+ }
1796
+ ]
2503
1797
  }
2504
1798
  },
2505
1799
  "additionalProperties": false
@@ -2552,98 +1846,107 @@
2552
1846
  }
2553
1847
  ]
2554
1848
  },
2555
- "UpdaterConfig": {
2556
- "description": "The Updater configuration object.",
1849
+ "RemoteDomainAccessScope": {
1850
+ "description": "External command access definition.",
2557
1851
  "type": "object",
1852
+ "required": [
1853
+ "domain",
1854
+ "windows"
1855
+ ],
2558
1856
  "properties": {
2559
- "active": {
2560
- "description": "Whether the updater is active or not.",
2561
- "default": false,
2562
- "type": "boolean"
2563
- },
2564
- "dialog": {
2565
- "description": "Display built-in dialog or use event system if disabled.",
2566
- "default": true,
2567
- "type": "boolean"
2568
- },
2569
- "endpoints": {
2570
- "description": "The updater endpoints. TLS is enforced on production.\n\nThe updater URL can contain the following variables: - {{current_version}}: The version of the app that is requesting the update - {{target}}: The operating system name (one of `linux`, `windows` or `darwin`). - {{arch}}: The architecture of the machine (one of `x86_64`, `i686`, `aarch64` or `armv7`).\n\n# Examples - \"https://my.cdn.com/latest.json\": a raw JSON endpoint that returns the latest version and download links for each platform. - \"https://updates.app.dev/{{target}}?version={{current_version}}&arch={{arch}}\": a dedicated API with positional and query string arguments.",
1857
+ "scheme": {
1858
+ "description": "The URL scheme to allow. By default, all schemas are allowed.",
2571
1859
  "type": [
2572
- "array",
1860
+ "string",
2573
1861
  "null"
2574
- ],
2575
- "items": {
2576
- "$ref": "#/definitions/UpdaterEndpoint"
2577
- }
1862
+ ]
2578
1863
  },
2579
- "pubkey": {
2580
- "description": "Signature public key.",
2581
- "default": "",
1864
+ "domain": {
1865
+ "description": "The domain to allow.",
2582
1866
  "type": "string"
2583
1867
  },
2584
1868
  "windows": {
2585
- "description": "The Windows configuration for the updater.",
2586
- "default": {
2587
- "installMode": "passive"
2588
- },
2589
- "allOf": [
2590
- {
2591
- "$ref": "#/definitions/UpdaterWindowsConfig"
2592
- }
2593
- ]
1869
+ "description": "The list of window labels this scope applies to.",
1870
+ "type": "array",
1871
+ "items": {
1872
+ "type": "string"
1873
+ }
1874
+ },
1875
+ "plugins": {
1876
+ "description": "The list of plugins that are allowed in this scope.",
1877
+ "default": [],
1878
+ "type": "array",
1879
+ "items": {
1880
+ "type": "string"
1881
+ }
2594
1882
  }
2595
1883
  },
2596
1884
  "additionalProperties": false
2597
1885
  },
2598
- "UpdaterEndpoint": {
2599
- "description": "A URL to an updater server.\n\nThe URL must use the `https` scheme on production.",
2600
- "type": "string",
2601
- "format": "uri"
2602
- },
2603
- "UpdaterWindowsConfig": {
2604
- "description": "The updater configuration for Windows.",
1886
+ "AssetProtocolConfig": {
1887
+ "description": "Config for the asset custom protocol.\n\nSee more: https://tauri.app/v1/api/config#assetprotocolconfig",
2605
1888
  "type": "object",
2606
1889
  "properties": {
2607
- "installMode": {
2608
- "description": "The installation mode for the update on Windows. Defaults to `passive`.",
2609
- "default": "passive",
1890
+ "scope": {
1891
+ "description": "The access scope for the asset protocol.",
1892
+ "default": [],
2610
1893
  "allOf": [
2611
1894
  {
2612
- "$ref": "#/definitions/WindowsUpdateInstallMode"
1895
+ "$ref": "#/definitions/FsScope"
2613
1896
  }
2614
1897
  ]
1898
+ },
1899
+ "enable": {
1900
+ "description": "Enables the asset protocol.",
1901
+ "default": false,
1902
+ "type": "boolean"
2615
1903
  }
2616
1904
  },
2617
1905
  "additionalProperties": false
2618
1906
  },
2619
- "WindowsUpdateInstallMode": {
2620
- "description": "Install modes for the Windows update.",
2621
- "oneOf": [
2622
- {
2623
- "description": "Specifies there's a basic UI during the installation process, including a final dialog box at the end.",
2624
- "type": "string",
2625
- "enum": [
2626
- "basicUi"
2627
- ]
2628
- },
1907
+ "FsScope": {
1908
+ "description": "Protocol 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`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
1909
+ "anyOf": [
2629
1910
  {
2630
- "description": "The quiet mode means there's no user interaction required. Requires admin privileges if the installer does.",
2631
- "type": "string",
2632
- "enum": [
2633
- "quiet"
2634
- ]
1911
+ "description": "A list of paths that are allowed by this scope.",
1912
+ "type": "array",
1913
+ "items": {
1914
+ "type": "string"
1915
+ }
2635
1916
  },
2636
1917
  {
2637
- "description": "Specifies unattended mode, which means the installation only shows a progress bar.",
2638
- "type": "string",
2639
- "enum": [
2640
- "passive"
2641
- ]
1918
+ "description": "A complete scope configuration.",
1919
+ "type": "object",
1920
+ "properties": {
1921
+ "allow": {
1922
+ "description": "A list of paths that are allowed by this scope.",
1923
+ "default": [],
1924
+ "type": "array",
1925
+ "items": {
1926
+ "type": "string"
1927
+ }
1928
+ },
1929
+ "deny": {
1930
+ "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
1931
+ "default": [],
1932
+ "type": "array",
1933
+ "items": {
1934
+ "type": "string"
1935
+ }
1936
+ },
1937
+ "requireLiteralLeadingDot": {
1938
+ "description": "Whether or not paths that contain components that start with a `.` will require that `.` appears literally in the pattern; `*`, `?`, `**`, or `[...]` will not match. This is useful because such files are conventionally considered hidden on Unix systems and it might be desirable to skip them when listing files.\n\nDefaults to `true` on Unix systems and `false` on Windows",
1939
+ "type": [
1940
+ "boolean",
1941
+ "null"
1942
+ ]
1943
+ }
1944
+ }
2642
1945
  }
2643
1946
  ]
2644
1947
  },
2645
1948
  "SystemTrayConfig": {
2646
- "description": "Configuration for application system tray icon.",
1949
+ "description": "Configuration for application system tray icon.\n\nSee more: https://tauri.app/v1/api/config#systemtrayconfig",
2647
1950
  "type": "object",
2648
1951
  "required": [
2649
1952
  "iconPath"
@@ -2674,7 +1977,7 @@
2674
1977
  "additionalProperties": false
2675
1978
  },
2676
1979
  "BuildConfig": {
2677
- "description": "The Build configuration object.",
1980
+ "description": "The Build configuration object.\n\nSee more: https://tauri.app/v1/api/config#buildconfig",
2678
1981
  "type": "object",
2679
1982
  "properties": {
2680
1983
  "runner": {
@@ -2837,7 +2140,7 @@
2837
2140
  ]
2838
2141
  },
2839
2142
  "PluginConfig": {
2840
- "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.",
2143
+ "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.\n\nSee more: https://tauri.app/v1/api/config#pluginconfig",
2841
2144
  "type": "object",
2842
2145
  "additionalProperties": true
2843
2146
  }