@tauri-apps/cli 1.0.0-rc.10 → 1.0.0-rc.13

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.
Files changed (4) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/Cargo.toml +3 -3
  3. package/package.json +12 -12
  4. package/schema.json +1506 -1474
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 config type mapped to `tauri.conf.json`.",
4
+ "description": "The tauri.conf.json is a file generated by the [`tauri init`](https://tauri.studio/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## Platform-Specific Configuration\n\nIn addition to the JSON defined on the `tauri.conf.json` file, Tauri can read a platform-specific configuration from `tauri.linux.conf.json`, `tauri.windows.conf.json`, and `tauri.macos.conf.json` and merges it with the main `tauri.conf.json` configuration.\n\n## Configuration Structure\n\n`tauri.conf.json` 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 } ] } } ```",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "$schema": {
@@ -11,19 +11,6 @@
11
11
  "null"
12
12
  ]
13
13
  },
14
- "build": {
15
- "description": "The build configuration.",
16
- "default": {
17
- "devPath": "http://localhost:8080/",
18
- "distDir": "../dist",
19
- "withGlobalTauri": false
20
- },
21
- "allOf": [
22
- {
23
- "$ref": "#/definitions/BuildConfig"
24
- }
25
- ]
26
- },
27
14
  "package": {
28
15
  "description": "Package settings.",
29
16
  "default": {
@@ -36,15 +23,6 @@
36
23
  }
37
24
  ]
38
25
  },
39
- "plugins": {
40
- "description": "The plugins config.",
41
- "default": {},
42
- "allOf": [
43
- {
44
- "$ref": "#/definitions/PluginConfig"
45
- }
46
- ]
47
- },
48
26
  "tauri": {
49
27
  "description": "The Tauri configuration.",
50
28
  "default": {
@@ -153,7 +131,7 @@
153
131
  "certificateThumbprint": null,
154
132
  "digestAlgorithm": null,
155
133
  "timestampUrl": null,
156
- "tsp": null,
134
+ "tsp": false,
157
135
  "webviewFixedRuntimePath": null,
158
136
  "wix": null
159
137
  }
@@ -169,7 +147,10 @@
169
147
  "updater": {
170
148
  "active": false,
171
149
  "dialog": true,
172
- "pubkey": ""
150
+ "pubkey": "",
151
+ "windows": {
152
+ "installMode": "passive"
153
+ }
173
154
  },
174
155
  "windows": []
175
156
  },
@@ -178,510 +159,587 @@
178
159
  "$ref": "#/definitions/TauriConfig"
179
160
  }
180
161
  ]
162
+ },
163
+ "build": {
164
+ "description": "The build configuration.",
165
+ "default": {
166
+ "devPath": "http://localhost:8080/",
167
+ "distDir": "../dist",
168
+ "withGlobalTauri": false
169
+ },
170
+ "allOf": [
171
+ {
172
+ "$ref": "#/definitions/BuildConfig"
173
+ }
174
+ ]
175
+ },
176
+ "plugins": {
177
+ "description": "The plugins config.",
178
+ "default": {},
179
+ "allOf": [
180
+ {
181
+ "$ref": "#/definitions/PluginConfig"
182
+ }
183
+ ]
181
184
  }
182
185
  },
183
186
  "additionalProperties": false,
184
187
  "definitions": {
185
- "AllowlistConfig": {
186
- "description": "Allowlist configuration.",
188
+ "PackageConfig": {
189
+ "description": "The package configuration.",
187
190
  "type": "object",
188
191
  "properties": {
189
- "all": {
190
- "description": "Use this flag to enable all API features.",
191
- "default": false,
192
- "type": "boolean"
192
+ "productName": {
193
+ "description": "App name.",
194
+ "type": [
195
+ "string",
196
+ "null"
197
+ ]
193
198
  },
194
- "clipboard": {
195
- "description": "Clipboard APIs allowlist.",
199
+ "version": {
200
+ "description": "App version. It is a semver version number or a path to a `package.json` file contaning the `version` field.",
201
+ "default": null,
202
+ "type": [
203
+ "string",
204
+ "null"
205
+ ]
206
+ }
207
+ },
208
+ "additionalProperties": false
209
+ },
210
+ "TauriConfig": {
211
+ "description": "The Tauri configuration object.",
212
+ "type": "object",
213
+ "properties": {
214
+ "pattern": {
215
+ "description": "The pattern to use.",
196
216
  "default": {
197
- "all": false,
198
- "readText": false,
199
- "writeText": false
217
+ "use": "brownfield"
200
218
  },
201
219
  "allOf": [
202
220
  {
203
- "$ref": "#/definitions/ClipboardAllowlistConfig"
221
+ "$ref": "#/definitions/PatternKind"
204
222
  }
205
223
  ]
206
224
  },
207
- "dialog": {
208
- "description": "Dialog API allowlist.",
209
- "default": {
210
- "all": false,
211
- "ask": false,
212
- "confirm": false,
213
- "message": false,
214
- "open": false,
215
- "save": false
216
- },
217
- "allOf": [
225
+ "windows": {
226
+ "description": "The windows configuration.",
227
+ "default": [],
228
+ "type": "array",
229
+ "items": {
230
+ "$ref": "#/definitions/WindowConfig"
231
+ }
232
+ },
233
+ "cli": {
234
+ "description": "The CLI configuration.",
235
+ "anyOf": [
218
236
  {
219
- "$ref": "#/definitions/DialogAllowlistConfig"
237
+ "$ref": "#/definitions/CliConfig"
238
+ },
239
+ {
240
+ "type": "null"
220
241
  }
221
242
  ]
222
243
  },
223
- "fs": {
224
- "description": "File system API allowlist.",
244
+ "bundle": {
245
+ "description": "The bundler configuration.",
225
246
  "default": {
226
- "all": false,
227
- "copyFile": false,
228
- "createDir": false,
229
- "readDir": false,
230
- "readFile": false,
231
- "removeDir": false,
232
- "removeFile": false,
233
- "renameFile": false,
234
- "scope": [],
235
- "writeFile": false
247
+ "active": false,
248
+ "deb": {
249
+ "files": {}
250
+ },
251
+ "icon": [],
252
+ "identifier": "",
253
+ "macOS": {
254
+ "minimumSystemVersion": "10.13"
255
+ },
256
+ "windows": {
257
+ "allowDowngrades": true,
258
+ "certificateThumbprint": null,
259
+ "digestAlgorithm": null,
260
+ "timestampUrl": null,
261
+ "tsp": false,
262
+ "webviewFixedRuntimePath": null,
263
+ "wix": null
264
+ }
236
265
  },
237
266
  "allOf": [
238
267
  {
239
- "$ref": "#/definitions/FsAllowlistConfig"
268
+ "$ref": "#/definitions/BundleConfig"
240
269
  }
241
270
  ]
242
271
  },
243
- "globalShortcut": {
244
- "description": "Global shortcut API allowlist.",
272
+ "allowlist": {
273
+ "description": "The allowlist configuration.",
245
274
  "default": {
246
- "all": false
275
+ "all": false,
276
+ "clipboard": {
277
+ "all": false,
278
+ "readText": false,
279
+ "writeText": false
280
+ },
281
+ "dialog": {
282
+ "all": false,
283
+ "ask": false,
284
+ "confirm": false,
285
+ "message": false,
286
+ "open": false,
287
+ "save": false
288
+ },
289
+ "fs": {
290
+ "all": false,
291
+ "copyFile": false,
292
+ "createDir": false,
293
+ "readDir": false,
294
+ "readFile": false,
295
+ "removeDir": false,
296
+ "removeFile": false,
297
+ "renameFile": false,
298
+ "scope": [],
299
+ "writeFile": false
300
+ },
301
+ "globalShortcut": {
302
+ "all": false
303
+ },
304
+ "http": {
305
+ "all": false,
306
+ "request": false,
307
+ "scope": []
308
+ },
309
+ "notification": {
310
+ "all": false
311
+ },
312
+ "os": {
313
+ "all": false
314
+ },
315
+ "path": {
316
+ "all": false
317
+ },
318
+ "process": {
319
+ "all": false,
320
+ "exit": false,
321
+ "relaunch": false,
322
+ "relaunchDangerousAllowSymlinkMacos": false
323
+ },
324
+ "protocol": {
325
+ "all": false,
326
+ "asset": false,
327
+ "assetScope": []
328
+ },
329
+ "shell": {
330
+ "all": false,
331
+ "execute": false,
332
+ "open": false,
333
+ "scope": [],
334
+ "sidecar": false
335
+ },
336
+ "window": {
337
+ "all": false,
338
+ "center": false,
339
+ "close": false,
340
+ "create": false,
341
+ "hide": false,
342
+ "maximize": false,
343
+ "minimize": false,
344
+ "print": false,
345
+ "requestUserAttention": false,
346
+ "setAlwaysOnTop": false,
347
+ "setDecorations": false,
348
+ "setFocus": false,
349
+ "setFullscreen": false,
350
+ "setIcon": false,
351
+ "setMaxSize": false,
352
+ "setMinSize": false,
353
+ "setPosition": false,
354
+ "setResizable": false,
355
+ "setSize": false,
356
+ "setSkipTaskbar": false,
357
+ "setTitle": false,
358
+ "show": false,
359
+ "startDragging": false,
360
+ "unmaximize": false,
361
+ "unminimize": false
362
+ }
247
363
  },
248
364
  "allOf": [
249
365
  {
250
- "$ref": "#/definitions/GlobalShortcutAllowlistConfig"
366
+ "$ref": "#/definitions/AllowlistConfig"
251
367
  }
252
368
  ]
253
369
  },
254
- "http": {
255
- "description": "HTTP API allowlist.",
370
+ "security": {
371
+ "description": "Security configuration.",
256
372
  "default": {
257
- "all": false,
258
- "request": false,
259
- "scope": []
373
+ "dangerousDisableAssetCspModification": false,
374
+ "freezePrototype": false
260
375
  },
261
376
  "allOf": [
262
377
  {
263
- "$ref": "#/definitions/HttpAllowlistConfig"
378
+ "$ref": "#/definitions/SecurityConfig"
264
379
  }
265
380
  ]
266
381
  },
267
- "notification": {
268
- "description": "Notification API allowlist.",
382
+ "updater": {
383
+ "description": "The updater configuration.",
269
384
  "default": {
270
- "all": false
271
- },
272
- "allOf": [
273
- {
274
- "$ref": "#/definitions/NotificationAllowlistConfig"
275
- }
276
- ]
277
- },
278
- "os": {
279
- "description": "OS allowlist.",
280
- "default": {
281
- "all": false
282
- },
283
- "allOf": [
284
- {
285
- "$ref": "#/definitions/OsAllowlistConfig"
286
- }
287
- ]
288
- },
289
- "path": {
290
- "description": "Path API allowlist.",
291
- "default": {
292
- "all": false
293
- },
294
- "allOf": [
295
- {
296
- "$ref": "#/definitions/PathAllowlistConfig"
385
+ "active": false,
386
+ "dialog": true,
387
+ "pubkey": "",
388
+ "windows": {
389
+ "installMode": "passive"
297
390
  }
298
- ]
299
- },
300
- "process": {
301
- "description": "Process API allowlist.",
302
- "default": {
303
- "all": false,
304
- "exit": false,
305
- "relaunch": false,
306
- "relaunchDangerousAllowSymlinkMacos": false
307
391
  },
308
392
  "allOf": [
309
393
  {
310
- "$ref": "#/definitions/ProcessAllowlistConfig"
394
+ "$ref": "#/definitions/UpdaterConfig"
311
395
  }
312
396
  ]
313
397
  },
314
- "protocol": {
315
- "description": "Custom protocol allowlist.",
316
- "default": {
317
- "all": false,
318
- "asset": false,
319
- "assetScope": []
320
- },
321
- "allOf": [
398
+ "systemTray": {
399
+ "description": "Configuration for app system tray.",
400
+ "anyOf": [
322
401
  {
323
- "$ref": "#/definitions/ProtocolAllowlistConfig"
324
- }
325
- ]
326
- },
327
- "shell": {
328
- "description": "Shell API allowlist.",
329
- "default": {
330
- "all": false,
331
- "execute": false,
332
- "open": false,
333
- "scope": [],
334
- "sidecar": false
335
- },
336
- "allOf": [
402
+ "$ref": "#/definitions/SystemTrayConfig"
403
+ },
337
404
  {
338
- "$ref": "#/definitions/ShellAllowlistConfig"
405
+ "type": "null"
339
406
  }
340
407
  ]
341
408
  },
342
- "window": {
343
- "description": "Window API allowlist.",
344
- "default": {
345
- "all": false,
346
- "center": false,
347
- "close": false,
348
- "create": false,
349
- "hide": false,
350
- "maximize": false,
351
- "minimize": false,
352
- "print": false,
353
- "requestUserAttention": false,
354
- "setAlwaysOnTop": false,
355
- "setDecorations": false,
356
- "setFocus": false,
357
- "setFullscreen": false,
358
- "setIcon": false,
359
- "setMaxSize": false,
360
- "setMinSize": false,
361
- "setPosition": false,
362
- "setResizable": false,
363
- "setSize": false,
364
- "setSkipTaskbar": false,
365
- "setTitle": false,
366
- "show": false,
367
- "startDragging": false,
368
- "unmaximize": false,
369
- "unminimize": false
370
- },
371
- "allOf": [
372
- {
373
- "$ref": "#/definitions/WindowAllowlistConfig"
374
- }
375
- ]
409
+ "macOSPrivateApi": {
410
+ "description": "MacOS private API configuration. Enables the transparent background API and sets the `fullScreenEnabled` preference to `true`.",
411
+ "default": false,
412
+ "type": "boolean"
376
413
  }
377
414
  },
378
415
  "additionalProperties": false
379
416
  },
380
- "AppUrl": {
381
- "description": "The `dev_path` and `dist_dir` options.",
382
- "anyOf": [
417
+ "PatternKind": {
418
+ "description": "The application pattern.",
419
+ "oneOf": [
383
420
  {
384
- "description": "The app's external URL, or the path to the directory containing the app assets.",
385
- "allOf": [
386
- {
387
- "$ref": "#/definitions/WindowUrl"
421
+ "description": "Brownfield pattern.",
422
+ "type": "object",
423
+ "required": [
424
+ "use"
425
+ ],
426
+ "properties": {
427
+ "use": {
428
+ "type": "string",
429
+ "enum": [
430
+ "brownfield"
431
+ ]
388
432
  }
389
- ]
433
+ }
390
434
  },
391
435
  {
392
- "description": "An array of files to embed on the app.",
393
- "type": "array",
394
- "items": {
395
- "type": "string"
436
+ "description": "Isolation pattern. Recommended for security purposes.",
437
+ "type": "object",
438
+ "required": [
439
+ "options",
440
+ "use"
441
+ ],
442
+ "properties": {
443
+ "use": {
444
+ "type": "string",
445
+ "enum": [
446
+ "isolation"
447
+ ]
448
+ },
449
+ "options": {
450
+ "type": "object",
451
+ "required": [
452
+ "dir"
453
+ ],
454
+ "properties": {
455
+ "dir": {
456
+ "description": "The dir containing the index.html file that contains the secure isolation application.",
457
+ "type": "string"
458
+ }
459
+ }
460
+ }
396
461
  }
397
462
  }
398
463
  ]
399
464
  },
400
- "BuildConfig": {
401
- "description": "The Build configuration object.",
465
+ "WindowConfig": {
466
+ "description": "The window configuration object.",
402
467
  "type": "object",
403
468
  "properties": {
404
- "beforeBuildCommand": {
405
- "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.",
406
- "type": [
407
- "string",
408
- "null"
409
- ]
410
- },
411
- "beforeDevCommand": {
412
- "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.",
413
- "type": [
414
- "string",
415
- "null"
416
- ]
417
- },
418
- "devPath": {
419
- "description": "The path or URL to use on development.",
420
- "default": "http://localhost:8080/",
421
- "allOf": [
422
- {
423
- "$ref": "#/definitions/AppUrl"
424
- }
425
- ]
469
+ "label": {
470
+ "description": "The window identifier. It must be alphanumeric.",
471
+ "default": "main",
472
+ "type": "string"
426
473
  },
427
- "distDir": {
428
- "description": "The path to the app's dist dir. This path must contain your index.html file.",
429
- "default": "../dist",
474
+ "url": {
475
+ "description": "The window webview URL.",
476
+ "default": "index.html",
430
477
  "allOf": [
431
478
  {
432
- "$ref": "#/definitions/AppUrl"
479
+ "$ref": "#/definitions/WindowUrl"
433
480
  }
434
481
  ]
435
482
  },
436
- "features": {
437
- "description": "Features passed to `cargo` commands.",
438
- "type": [
439
- "array",
440
- "null"
441
- ],
442
- "items": {
443
- "type": "string"
444
- }
445
- },
446
- "runner": {
447
- "description": "The binary used to build and run the application.",
448
- "type": [
449
- "string",
450
- "null"
451
- ]
452
- },
453
- "withGlobalTauri": {
454
- "description": "Whether we should inject the Tauri API on `window.__TAURI__` or not.",
455
- "default": false,
483
+ "fileDropEnabled": {
484
+ "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.",
485
+ "default": true,
456
486
  "type": "boolean"
457
- }
458
- },
459
- "additionalProperties": false
460
- },
461
- "BundleConfig": {
462
- "description": "Configuration for tauri-bundler.",
463
- "type": "object",
464
- "required": [
465
- "identifier"
466
- ],
467
- "properties": {
468
- "active": {
469
- "description": "Whether we should build your app with tauri-bundler or plain `cargo build`",
487
+ },
488
+ "center": {
489
+ "description": "Whether or not the window starts centered or not.",
470
490
  "default": false,
471
491
  "type": "boolean"
472
492
  },
473
- "category": {
474
- "description": "The application kind.\n\nShould be one of the following: Business, DeveloperTool, Education, Entertainment, Finance, Game, ActionGame, AdventureGame, ArcadeGame, BoardGame, CardGame, CasinoGame, DiceGame, EducationalGame, FamilyGame, KidsGame, MusicGame, PuzzleGame, RacingGame, RolePlayingGame, SimulationGame, SportsGame, StrategyGame, TriviaGame, WordGame, GraphicsAndDesign, HealthcareAndFitness, Lifestyle, Medical, Music, News, Photography, Productivity, Reference, SocialNetworking, Sports, Travel, Utility, Video, Weather.",
493
+ "x": {
494
+ "description": "The horizontal position of the window's top left corner",
475
495
  "type": [
476
- "string",
496
+ "number",
477
497
  "null"
478
- ]
498
+ ],
499
+ "format": "double"
479
500
  },
480
- "copyright": {
481
- "description": "A copyright string associated with your application.",
501
+ "y": {
502
+ "description": "The vertical position of the window's top left corner",
482
503
  "type": [
483
- "string",
504
+ "number",
484
505
  "null"
485
- ]
506
+ ],
507
+ "format": "double"
486
508
  },
487
- "deb": {
488
- "description": "Configuration for the Debian bundle.",
489
- "default": {
490
- "files": {}
491
- },
492
- "allOf": [
493
- {
494
- "$ref": "#/definitions/DebConfig"
495
- }
496
- ]
509
+ "width": {
510
+ "description": "The window width.",
511
+ "default": 800.0,
512
+ "type": "number",
513
+ "format": "double"
497
514
  },
498
- "externalBin": {
499
- "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.",
515
+ "height": {
516
+ "description": "The window height.",
517
+ "default": 600.0,
518
+ "type": "number",
519
+ "format": "double"
520
+ },
521
+ "minWidth": {
522
+ "description": "The min window width.",
500
523
  "type": [
501
- "array",
524
+ "number",
502
525
  "null"
503
526
  ],
504
- "items": {
505
- "type": "string"
506
- }
507
- },
508
- "icon": {
509
- "description": "The app's icons",
510
- "default": [],
511
- "type": "array",
512
- "items": {
513
- "type": "string"
514
- }
515
- },
516
- "identifier": {
517
- "description": "The app's identifier",
518
- "type": "string"
527
+ "format": "double"
519
528
  },
520
- "longDescription": {
521
- "description": "A longer, multi-line description of the application.",
529
+ "minHeight": {
530
+ "description": "The min window height.",
522
531
  "type": [
523
- "string",
532
+ "number",
524
533
  "null"
525
- ]
526
- },
527
- "macOS": {
528
- "description": "Configuration for the macOS bundles.",
529
- "default": {
530
- "minimumSystemVersion": "10.13"
531
- },
532
- "allOf": [
533
- {
534
- "$ref": "#/definitions/MacConfig"
535
- }
536
- ]
534
+ ],
535
+ "format": "double"
537
536
  },
538
- "resources": {
539
- "description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.",
537
+ "maxWidth": {
538
+ "description": "The max window width.",
540
539
  "type": [
541
- "array",
540
+ "number",
542
541
  "null"
543
542
  ],
544
- "items": {
545
- "type": "string"
546
- }
543
+ "format": "double"
547
544
  },
548
- "shortDescription": {
549
- "description": "A short description of your application.",
545
+ "maxHeight": {
546
+ "description": "The max window height.",
550
547
  "type": [
551
- "string",
548
+ "number",
552
549
  "null"
553
- ]
550
+ ],
551
+ "format": "double"
554
552
  },
555
- "targets": {
556
- "description": "The bundle targets, currently supports [\"deb\", \"app\", \"msi\", \"appimage\", \"dmg\"] or \"all\"",
553
+ "resizable": {
554
+ "description": "Whether the window is resizable or not.",
555
+ "default": true,
556
+ "type": "boolean"
557
+ },
558
+ "title": {
559
+ "description": "The window title.",
560
+ "default": "Tauri App",
561
+ "type": "string"
562
+ },
563
+ "fullscreen": {
564
+ "description": "Whether the window starts as fullscreen or not.",
565
+ "default": false,
566
+ "type": "boolean"
567
+ },
568
+ "focus": {
569
+ "description": "Whether the window will be initially hidden or focused.",
570
+ "default": true,
571
+ "type": "boolean"
572
+ },
573
+ "transparent": {
574
+ "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`.",
575
+ "default": false,
576
+ "type": "boolean"
577
+ },
578
+ "maximized": {
579
+ "description": "Whether the window is maximized or not.",
580
+ "default": false,
581
+ "type": "boolean"
582
+ },
583
+ "visible": {
584
+ "description": "Whether the window is visible or not.",
585
+ "default": true,
586
+ "type": "boolean"
587
+ },
588
+ "decorations": {
589
+ "description": "Whether the window should have borders and bars.",
590
+ "default": true,
591
+ "type": "boolean"
592
+ },
593
+ "alwaysOnTop": {
594
+ "description": "Whether the window should always be on top of other windows.",
595
+ "default": false,
596
+ "type": "boolean"
597
+ },
598
+ "skipTaskbar": {
599
+ "description": "Whether or not the window icon should be added to the taskbar.",
600
+ "default": false,
601
+ "type": "boolean"
602
+ },
603
+ "theme": {
604
+ "description": "The initial window theme. Defaults to the system theme. Only implemented on Windows.",
557
605
  "anyOf": [
558
606
  {
559
- "$ref": "#/definitions/BundleTarget"
607
+ "$ref": "#/definitions/Theme"
560
608
  },
561
609
  {
562
610
  "type": "null"
563
611
  }
564
612
  ]
565
- },
566
- "windows": {
567
- "description": "Configuration for the Windows bundle.",
568
- "default": {
569
- "allowDowngrades": true,
570
- "certificateThumbprint": null,
571
- "digestAlgorithm": null,
572
- "timestampUrl": null,
573
- "tsp": null,
574
- "webviewFixedRuntimePath": null,
575
- "wix": null
576
- },
577
- "allOf": [
578
- {
579
- "$ref": "#/definitions/WindowsConfig"
580
- }
581
- ]
582
613
  }
583
614
  },
584
615
  "additionalProperties": false
585
616
  },
586
- "BundleTarget": {
587
- "description": "Targets to bundle.",
617
+ "WindowUrl": {
618
+ "description": "An URL to open on a Tauri webview window.",
588
619
  "anyOf": [
589
620
  {
590
- "description": "A list of bundle targets.",
591
- "type": "array",
592
- "items": {
593
- "type": "string"
594
- }
621
+ "description": "An external URL.",
622
+ "type": "string",
623
+ "format": "uri"
595
624
  },
596
625
  {
597
- "description": "A single bundle target.",
626
+ "description": "The path portion of an app URL. For instance, to load `tauri://localhost/users/john`, you can simply provide `users/john` in this configuration.",
598
627
  "type": "string"
599
628
  }
600
629
  ]
601
630
  },
602
- "CliArg": {
603
- "description": "A CLI argument definition.",
631
+ "Theme": {
632
+ "description": "System theme.",
633
+ "type": "string",
634
+ "enum": [
635
+ "Light",
636
+ "Dark"
637
+ ]
638
+ },
639
+ "CliConfig": {
640
+ "description": "describes a CLI configuration",
604
641
  "type": "object",
605
- "required": [
606
- "name"
607
- ],
608
642
  "properties": {
609
- "conflictsWith": {
610
- "description": "Sets a conflicting argument by name i.e. when using this argument, the following argument can't be present and vice versa.",
643
+ "description": {
644
+ "description": "Command description which will be shown on the help information.",
611
645
  "type": [
612
646
  "string",
613
647
  "null"
614
648
  ]
615
649
  },
616
- "conflictsWithAll": {
617
- "description": "The same as conflictsWith but allows specifying multiple two-way conflicts per argument.",
618
- "type": [
619
- "array",
620
- "null"
621
- ],
622
- "items": {
623
- "type": "string"
624
- }
625
- },
626
- "description": {
627
- "description": "The argument description which will be shown on the help information. Typically, this is a short (one line) description of the arg.",
650
+ "longDescription": {
651
+ "description": "Command long description which will be shown on the help information.",
628
652
  "type": [
629
653
  "string",
630
654
  "null"
631
655
  ]
632
656
  },
633
- "index": {
634
- "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).",
657
+ "beforeHelp": {
658
+ "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.",
635
659
  "type": [
636
- "integer",
660
+ "string",
637
661
  "null"
638
- ],
639
- "format": "uint",
640
- "minimum": 0.0
662
+ ]
641
663
  },
642
- "longDescription": {
643
- "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.",
664
+ "afterHelp": {
665
+ "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.",
644
666
  "type": [
645
667
  "string",
646
668
  "null"
647
669
  ]
648
670
  },
649
- "maxValues": {
650
- "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.",
671
+ "args": {
672
+ "description": "List of arguments for the command",
651
673
  "type": [
652
- "integer",
674
+ "array",
653
675
  "null"
654
676
  ],
655
- "format": "uint",
656
- "minimum": 0.0
677
+ "items": {
678
+ "$ref": "#/definitions/CliArg"
679
+ }
657
680
  },
658
- "minValues": {
659
- "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.",
681
+ "subcommands": {
682
+ "description": "List of subcommands of this command",
660
683
  "type": [
661
- "integer",
684
+ "object",
662
685
  "null"
663
686
  ],
664
- "format": "uint",
665
- "minimum": 0.0
666
- },
667
- "multiple": {
668
- "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.",
687
+ "additionalProperties": {
688
+ "$ref": "#/definitions/CliConfig"
689
+ }
690
+ }
691
+ },
692
+ "additionalProperties": false
693
+ },
694
+ "CliArg": {
695
+ "description": "A CLI argument definition.",
696
+ "type": "object",
697
+ "required": [
698
+ "name"
699
+ ],
700
+ "properties": {
701
+ "short": {
702
+ "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.",
669
703
  "type": [
670
- "boolean",
704
+ "string",
671
705
  "null"
672
- ]
673
- },
674
- "multipleOccurrences": {
675
- "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.",
676
- "type": [
677
- "boolean",
678
- "null"
679
- ]
706
+ ],
707
+ "maxLength": 1,
708
+ "minLength": 1
680
709
  },
681
710
  "name": {
682
711
  "description": "The unique argument name",
683
712
  "type": "string"
684
713
  },
714
+ "description": {
715
+ "description": "The argument description which will be shown on the help information. Typically, this is a short (one line) description of the arg.",
716
+ "type": [
717
+ "string",
718
+ "null"
719
+ ]
720
+ },
721
+ "longDescription": {
722
+ "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.",
723
+ "type": [
724
+ "string",
725
+ "null"
726
+ ]
727
+ },
728
+ "takesValue": {
729
+ "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",
730
+ "default": false,
731
+ "type": "boolean"
732
+ },
733
+ "multiple": {
734
+ "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.",
735
+ "default": false,
736
+ "type": "boolean"
737
+ },
738
+ "multipleOccurrences": {
739
+ "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.",
740
+ "default": false,
741
+ "type": "boolean"
742
+ },
685
743
  "numberOfValues": {
686
744
  "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`.",
687
745
  "type": [
@@ -701,29 +759,28 @@
701
759
  "type": "string"
702
760
  }
703
761
  },
704
- "requireEquals": {
705
- "description": "Requires that options use the --option=val syntax i.e. an equals between the option and associated value.",
706
- "type": [
707
- "boolean",
708
- "null"
709
- ]
710
- },
711
- "required": {
712
- "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.",
762
+ "minValues": {
763
+ "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.",
713
764
  "type": [
714
- "boolean",
765
+ "integer",
715
766
  "null"
716
- ]
767
+ ],
768
+ "format": "uint",
769
+ "minimum": 0.0
717
770
  },
718
- "requiredIfEq": {
719
- "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}`.",
771
+ "maxValues": {
772
+ "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.",
720
773
  "type": [
721
- "array",
774
+ "integer",
722
775
  "null"
723
776
  ],
724
- "items": {
725
- "type": "string"
726
- }
777
+ "format": "uint",
778
+ "minimum": 0.0
779
+ },
780
+ "required": {
781
+ "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.",
782
+ "default": false,
783
+ "type": "boolean"
727
784
  },
728
785
  "requiredUnlessPresent": {
729
786
  "description": "Sets an arg that override this arg's required setting i.e. this arg will be required unless this other argument is present.",
@@ -752,6 +809,23 @@
752
809
  "type": "string"
753
810
  }
754
811
  },
812
+ "conflictsWith": {
813
+ "description": "Sets a conflicting argument by name i.e. when using this argument, the following argument can't be present and vice versa.",
814
+ "type": [
815
+ "string",
816
+ "null"
817
+ ]
818
+ },
819
+ "conflictsWithAll": {
820
+ "description": "The same as conflictsWith but allows specifying multiple two-way conflicts per argument.",
821
+ "type": [
822
+ "array",
823
+ "null"
824
+ ],
825
+ "items": {
826
+ "type": "string"
827
+ }
828
+ },
755
829
  "requires": {
756
830
  "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.",
757
831
  "type": [
@@ -779,131 +853,173 @@
779
853
  "type": "string"
780
854
  }
781
855
  },
782
- "short": {
783
- "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.",
856
+ "requiredIfEq": {
857
+ "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}`.",
784
858
  "type": [
785
- "string",
859
+ "array",
786
860
  "null"
787
861
  ],
788
- "maxLength": 1,
789
- "minLength": 1
862
+ "items": {
863
+ "type": "string"
864
+ }
790
865
  },
791
- "takesValue": {
792
- "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",
866
+ "requireEquals": {
867
+ "description": "Requires that options use the --option=val syntax i.e. an equals between the option and associated value.",
793
868
  "type": [
794
869
  "boolean",
795
870
  "null"
796
871
  ]
872
+ },
873
+ "index": {
874
+ "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).",
875
+ "type": [
876
+ "integer",
877
+ "null"
878
+ ],
879
+ "format": "uint",
880
+ "minimum": 1.0
797
881
  }
798
882
  },
799
883
  "additionalProperties": false
800
884
  },
801
- "CliConfig": {
802
- "description": "describes a CLI configuration",
885
+ "BundleConfig": {
886
+ "description": "Configuration for tauri-bundler.",
803
887
  "type": "object",
888
+ "required": [
889
+ "identifier"
890
+ ],
804
891
  "properties": {
805
- "afterHelp": {
806
- "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.",
807
- "type": [
808
- "string",
809
- "null"
892
+ "active": {
893
+ "description": "Whether we should build your app with tauri-bundler or plain `cargo build`",
894
+ "default": false,
895
+ "type": "boolean"
896
+ },
897
+ "targets": {
898
+ "description": "The bundle targets, currently supports [\"deb\", \"app\", \"msi\", \"appimage\", \"dmg\"] or \"all\"",
899
+ "anyOf": [
900
+ {
901
+ "$ref": "#/definitions/BundleTarget"
902
+ },
903
+ {
904
+ "type": "null"
905
+ }
810
906
  ]
811
907
  },
812
- "args": {
813
- "description": "List of arguments for the command",
908
+ "identifier": {
909
+ "description": "The app's identifier",
910
+ "type": "string"
911
+ },
912
+ "icon": {
913
+ "description": "The app's icons",
914
+ "default": [],
915
+ "type": "array",
916
+ "items": {
917
+ "type": "string"
918
+ }
919
+ },
920
+ "resources": {
921
+ "description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.",
814
922
  "type": [
815
923
  "array",
816
924
  "null"
817
925
  ],
818
926
  "items": {
819
- "$ref": "#/definitions/CliArg"
927
+ "type": "string"
820
928
  }
821
929
  },
822
- "beforeHelp": {
823
- "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.",
930
+ "copyright": {
931
+ "description": "A copyright string associated with your application.",
824
932
  "type": [
825
933
  "string",
826
934
  "null"
827
935
  ]
828
936
  },
829
- "description": {
830
- "description": "Command description which will be shown on the help information.",
937
+ "category": {
938
+ "description": "The application kind.\n\nShould be one of the following: Business, DeveloperTool, Education, Entertainment, Finance, Game, ActionGame, AdventureGame, ArcadeGame, BoardGame, CardGame, CasinoGame, DiceGame, EducationalGame, FamilyGame, KidsGame, MusicGame, PuzzleGame, RacingGame, RolePlayingGame, SimulationGame, SportsGame, StrategyGame, TriviaGame, WordGame, GraphicsAndDesign, HealthcareAndFitness, Lifestyle, Medical, Music, News, Photography, Productivity, Reference, SocialNetworking, Sports, Travel, Utility, Video, Weather.",
939
+ "type": [
940
+ "string",
941
+ "null"
942
+ ]
943
+ },
944
+ "shortDescription": {
945
+ "description": "A short description of your application.",
831
946
  "type": [
832
947
  "string",
833
948
  "null"
834
949
  ]
835
950
  },
836
951
  "longDescription": {
837
- "description": "Command long description which will be shown on the help information.",
952
+ "description": "A longer, multi-line description of the application.",
838
953
  "type": [
839
954
  "string",
840
955
  "null"
841
956
  ]
842
957
  },
843
- "subcommands": {
844
- "description": "List of subcommands of this command",
958
+ "deb": {
959
+ "description": "Configuration for the Debian bundle.",
960
+ "default": {
961
+ "files": {}
962
+ },
963
+ "allOf": [
964
+ {
965
+ "$ref": "#/definitions/DebConfig"
966
+ }
967
+ ]
968
+ },
969
+ "macOS": {
970
+ "description": "Configuration for the macOS bundles.",
971
+ "default": {
972
+ "minimumSystemVersion": "10.13"
973
+ },
974
+ "allOf": [
975
+ {
976
+ "$ref": "#/definitions/MacConfig"
977
+ }
978
+ ]
979
+ },
980
+ "externalBin": {
981
+ "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.",
845
982
  "type": [
846
- "object",
983
+ "array",
847
984
  "null"
848
985
  ],
849
- "additionalProperties": {
850
- "$ref": "#/definitions/CliConfig"
986
+ "items": {
987
+ "type": "string"
851
988
  }
852
- }
853
- },
854
- "additionalProperties": false
855
- },
856
- "ClipboardAllowlistConfig": {
857
- "description": "Allowlist for the clipboard APIs.",
858
- "type": "object",
859
- "properties": {
860
- "all": {
861
- "description": "Use this flag to enable all clipboard APIs.",
862
- "default": false,
863
- "type": "boolean"
864
- },
865
- "readText": {
866
- "description": "Enables the clipboard's `readText` API.",
867
- "default": false,
868
- "type": "boolean"
869
989
  },
870
- "writeText": {
871
- "description": "Enables the clipboard's `writeText` API.",
872
- "default": false,
873
- "type": "boolean"
990
+ "windows": {
991
+ "description": "Configuration for the Windows bundle.",
992
+ "default": {
993
+ "allowDowngrades": true,
994
+ "certificateThumbprint": null,
995
+ "digestAlgorithm": null,
996
+ "timestampUrl": null,
997
+ "tsp": false,
998
+ "webviewFixedRuntimePath": null,
999
+ "wix": null
1000
+ },
1001
+ "allOf": [
1002
+ {
1003
+ "$ref": "#/definitions/WindowsConfig"
1004
+ }
1005
+ ]
874
1006
  }
875
1007
  },
876
1008
  "additionalProperties": false
877
1009
  },
878
- "Csp": {
879
- "description": "A Content-Security-Policy definition. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
1010
+ "BundleTarget": {
1011
+ "description": "Targets to bundle.",
880
1012
  "anyOf": [
881
1013
  {
882
- "description": "The entire CSP policy in a single text string.",
883
- "type": "string"
1014
+ "description": "A list of bundle targets.",
1015
+ "type": "array",
1016
+ "items": {
1017
+ "type": "string"
1018
+ }
884
1019
  },
885
1020
  {
886
- "description": "An object mapping a directive with its sources values as a list of strings.",
887
- "type": "object",
888
- "additionalProperties": {
889
- "$ref": "#/definitions/CspDirectiveSources"
890
- }
891
- }
892
- ]
893
- },
894
- "CspDirectiveSources": {
895
- "description": "A Content-Security-Policy directive source list. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>.",
896
- "anyOf": [
897
- {
898
- "description": "An inline list of CSP sources. Same as [`Self::List`], but concatenated with a space separator.",
899
- "type": "string"
900
- },
901
- {
902
- "description": "A list of CSP sources. The collection will be concatenated with a space separator for the CSP string.",
903
- "type": "array",
904
- "items": {
905
- "type": "string"
906
- }
1021
+ "description": "A single bundle target.",
1022
+ "type": "string"
907
1023
  }
908
1024
  ]
909
1025
  },
@@ -932,206 +1048,23 @@
932
1048
  },
933
1049
  "additionalProperties": false
934
1050
  },
935
- "DialogAllowlistConfig": {
936
- "description": "Allowlist for the dialog APIs.",
937
- "type": "object",
938
- "properties": {
939
- "all": {
940
- "description": "Use this flag to enable all dialog API features.",
941
- "default": false,
942
- "type": "boolean"
943
- },
944
- "ask": {
945
- "description": "Allows the API to show a dialog window with Yes/No buttons.",
946
- "default": false,
947
- "type": "boolean"
948
- },
949
- "confirm": {
950
- "description": "Allows the API to show a dialog window with Ok/Cancel buttons.",
951
- "default": false,
952
- "type": "boolean"
953
- },
954
- "message": {
955
- "description": "Allows the API to show a message dialog window.",
956
- "default": false,
957
- "type": "boolean"
958
- },
959
- "open": {
960
- "description": "Allows the API to open a dialog window to pick files.",
961
- "default": false,
962
- "type": "boolean"
963
- },
964
- "save": {
965
- "description": "Allows the API to open a dialog window to pick where to save files.",
966
- "default": false,
967
- "type": "boolean"
968
- }
969
- },
970
- "additionalProperties": false
971
- },
972
- "DisabledCspModificationKind": {
973
- "description": "The possible values for the `dangerous_disable_asset_csp_modification` config option.",
974
- "anyOf": [
975
- {
976
- "description": "If `true`, disables all CSP modification. `false` is the default value and it configures Tauri to control the CSP.",
977
- "type": "boolean"
978
- },
979
- {
980
- "description": "Disables the given list of CSP directives modifications.",
981
- "type": "array",
982
- "items": {
983
- "type": "string"
984
- }
985
- }
986
- ]
987
- },
988
- "FsAllowlistConfig": {
989
- "description": "Allowlist for the file system APIs.",
1051
+ "MacConfig": {
1052
+ "description": "Configuration for the macOS bundles.",
990
1053
  "type": "object",
991
1054
  "properties": {
992
- "all": {
993
- "description": "Use this flag to enable all file system API features.",
994
- "default": false,
995
- "type": "boolean"
996
- },
997
- "copyFile": {
998
- "description": "Copy file from local filesystem.",
999
- "default": false,
1000
- "type": "boolean"
1001
- },
1002
- "createDir": {
1003
- "description": "Create directory from local filesystem.",
1004
- "default": false,
1005
- "type": "boolean"
1006
- },
1007
- "readDir": {
1008
- "description": "Read directory from local filesystem.",
1009
- "default": false,
1010
- "type": "boolean"
1011
- },
1012
- "readFile": {
1013
- "description": "Read file from local filesystem.",
1014
- "default": false,
1015
- "type": "boolean"
1016
- },
1017
- "removeDir": {
1018
- "description": "Remove directory from local filesystem.",
1019
- "default": false,
1020
- "type": "boolean"
1021
- },
1022
- "removeFile": {
1023
- "description": "Remove file from local filesystem.",
1024
- "default": false,
1025
- "type": "boolean"
1026
- },
1027
- "renameFile": {
1028
- "description": "Rename file from local filesystem.",
1029
- "default": false,
1030
- "type": "boolean"
1031
- },
1032
- "scope": {
1033
- "description": "The access scope for the filesystem APIs.",
1034
- "default": [],
1035
- "allOf": [
1036
- {
1037
- "$ref": "#/definitions/FsAllowlistScope"
1038
- }
1039
- ]
1040
- },
1041
- "writeFile": {
1042
- "description": "Write file to local filesystem.",
1043
- "default": false,
1044
- "type": "boolean"
1045
- }
1046
- },
1047
- "additionalProperties": false
1048
- },
1049
- "FsAllowlistScope": {
1050
- "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`.",
1051
- "anyOf": [
1052
- {
1053
- "description": "A list of paths that are allowed by this scope.",
1054
- "type": "array",
1055
+ "frameworks": {
1056
+ "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.",
1057
+ "type": [
1058
+ "array",
1059
+ "null"
1060
+ ],
1055
1061
  "items": {
1056
1062
  "type": "string"
1057
1063
  }
1058
1064
  },
1059
- {
1060
- "description": "A complete scope configuration.",
1061
- "type": "object",
1062
- "properties": {
1063
- "allow": {
1064
- "description": "A list of paths that are allowed by this scope.",
1065
- "default": [],
1066
- "type": "array",
1067
- "items": {
1068
- "type": "string"
1069
- }
1070
- },
1071
- "deny": {
1072
- "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
1073
- "default": [],
1074
- "type": "array",
1075
- "items": {
1076
- "type": "string"
1077
- }
1078
- }
1079
- }
1080
- }
1081
- ]
1082
- },
1083
- "GlobalShortcutAllowlistConfig": {
1084
- "description": "Allowlist for the global shortcut APIs.",
1085
- "type": "object",
1086
- "properties": {
1087
- "all": {
1088
- "description": "Use this flag to enable all global shortcut API features.",
1089
- "default": false,
1090
- "type": "boolean"
1091
- }
1092
- },
1093
- "additionalProperties": false
1094
- },
1095
- "HttpAllowlistConfig": {
1096
- "description": "Allowlist for the HTTP APIs.",
1097
- "type": "object",
1098
- "properties": {
1099
- "all": {
1100
- "description": "Use this flag to enable all HTTP API features.",
1101
- "default": false,
1102
- "type": "boolean"
1103
- },
1104
- "request": {
1105
- "description": "Allows making HTTP requests.",
1106
- "default": false,
1107
- "type": "boolean"
1108
- },
1109
- "scope": {
1110
- "description": "The access scope for the HTTP APIs.",
1111
- "default": [],
1112
- "allOf": [
1113
- {
1114
- "$ref": "#/definitions/HttpAllowlistScope"
1115
- }
1116
- ]
1117
- }
1118
- },
1119
- "additionalProperties": false
1120
- },
1121
- "HttpAllowlistScope": {
1122
- "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\n# Examples\n\n- \"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/\"",
1123
- "type": "array",
1124
- "items": {
1125
- "type": "string",
1126
- "format": "uri"
1127
- }
1128
- },
1129
- "MacConfig": {
1130
- "description": "Configuration for the macOS bundles.",
1131
- "type": "object",
1132
- "properties": {
1133
- "entitlements": {
1134
- "description": "Path to the entitlements file.",
1065
+ "minimumSystemVersion": {
1066
+ "description": "A version string indicating the minimum macOS X version that the bundled application supports. Defaults to `10.13`.\n\nSetting it to `null` completely removes the `LSMinimumSystemVersion` field on the bundle's `Info.plist` and the `MACOSX_DEPLOYMENT_TARGET` environment variable.\n\nAn empty string is considered an invalid value so the default value is used.",
1067
+ "default": "10.13",
1135
1068
  "type": [
1136
1069
  "string",
1137
1070
  "null"
@@ -1144,16 +1077,6 @@
1144
1077
  "null"
1145
1078
  ]
1146
1079
  },
1147
- "frameworks": {
1148
- "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.",
1149
- "type": [
1150
- "array",
1151
- "null"
1152
- ],
1153
- "items": {
1154
- "type": "string"
1155
- }
1156
- },
1157
1080
  "license": {
1158
1081
  "description": "The path to the license file to add to the DMG bundle.",
1159
1082
  "type": [
@@ -1161,9 +1084,8 @@
1161
1084
  "null"
1162
1085
  ]
1163
1086
  },
1164
- "minimumSystemVersion": {
1165
- "description": "A version string indicating the minimum macOS X version that the bundled application supports. Defaults to `10.13`.\n\nSetting it to `null` completely removes the `LSMinimumSystemVersion` field on the bundle's `Info.plist` and the `MACOSX_DEPLOYMENT_TARGET` environment variable.\n\nAn empty string is considered an invalid value so the default value is used.",
1166
- "default": "10.13",
1087
+ "signingIdentity": {
1088
+ "description": "Identity to use for code signing.",
1167
1089
  "type": [
1168
1090
  "string",
1169
1091
  "null"
@@ -1176,8 +1098,8 @@
1176
1098
  "null"
1177
1099
  ]
1178
1100
  },
1179
- "signingIdentity": {
1180
- "description": "Identity to use for code signing.",
1101
+ "entitlements": {
1102
+ "description": "Path to the entitlements file.",
1181
1103
  "type": [
1182
1104
  "string",
1183
1105
  "null"
@@ -1186,648 +1108,612 @@
1186
1108
  },
1187
1109
  "additionalProperties": false
1188
1110
  },
1189
- "NotificationAllowlistConfig": {
1190
- "description": "Allowlist for the notification APIs.",
1191
- "type": "object",
1192
- "properties": {
1193
- "all": {
1194
- "description": "Use this flag to enable all notification API features.",
1195
- "default": false,
1196
- "type": "boolean"
1197
- }
1198
- },
1199
- "additionalProperties": false
1200
- },
1201
- "OsAllowlistConfig": {
1202
- "description": "Allowlist for the OS APIs.",
1111
+ "WindowsConfig": {
1112
+ "description": "Windows bundler configuration.",
1203
1113
  "type": "object",
1204
1114
  "properties": {
1205
- "all": {
1206
- "description": "Use this flag to enable all OS API features.",
1207
- "default": false,
1208
- "type": "boolean"
1209
- }
1210
- },
1211
- "additionalProperties": false
1212
- },
1213
- "PackageConfig": {
1214
- "description": "The package configuration.",
1215
- "type": "object",
1216
- "properties": {
1217
- "productName": {
1218
- "description": "App name.",
1115
+ "digestAlgorithm": {
1116
+ "description": "Specifies the file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.",
1219
1117
  "type": [
1220
1118
  "string",
1221
1119
  "null"
1222
1120
  ]
1223
1121
  },
1224
- "version": {
1225
- "description": "App version. It is a semver version number or a path to a `package.json` file contaning the `version` field.",
1226
- "default": null,
1122
+ "certificateThumbprint": {
1123
+ "description": "Specifies the SHA1 hash of the signing certificate.",
1124
+ "type": [
1125
+ "string",
1126
+ "null"
1127
+ ]
1128
+ },
1129
+ "timestampUrl": {
1130
+ "description": "Server to use during timestamping.",
1131
+ "type": [
1132
+ "string",
1133
+ "null"
1134
+ ]
1135
+ },
1136
+ "tsp": {
1137
+ "description": "Whether to use Time-Stamp Protocol (TSP, a.k.a. RFC 3161) for the timestamp server. Your code signing provider may use a TSP timestamp server, like e.g. SSL.com does. If so, enable TSP by setting to true.",
1138
+ "default": false,
1139
+ "type": "boolean"
1140
+ },
1141
+ "webviewFixedRuntimePath": {
1142
+ "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.",
1227
1143
  "type": [
1228
1144
  "string",
1229
1145
  "null"
1230
1146
  ]
1147
+ },
1148
+ "allowDowngrades": {
1149
+ "description": "Validates a second app installation, blocking the user from installing an older version if set to `false`.\n\nFor instance, if `1.2.1` is installed, the user won't be able to install app version `1.2.0` or `1.1.5`.\n\nThe default value of this flag is `true`.",
1150
+ "default": true,
1151
+ "type": "boolean"
1152
+ },
1153
+ "wix": {
1154
+ "description": "Configuration for the MSI generated with WiX.",
1155
+ "anyOf": [
1156
+ {
1157
+ "$ref": "#/definitions/WixConfig"
1158
+ },
1159
+ {
1160
+ "type": "null"
1161
+ }
1162
+ ]
1231
1163
  }
1232
1164
  },
1233
1165
  "additionalProperties": false
1234
1166
  },
1235
- "PathAllowlistConfig": {
1236
- "description": "Allowlist for the path APIs.",
1167
+ "WixConfig": {
1168
+ "description": "Configuration for the MSI bundle using WiX.",
1237
1169
  "type": "object",
1238
1170
  "properties": {
1239
- "all": {
1240
- "description": "Use this flag to enable all path API features.",
1171
+ "language": {
1172
+ "description": "The installer languages to build. See <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>.",
1173
+ "default": "en-US",
1174
+ "allOf": [
1175
+ {
1176
+ "$ref": "#/definitions/WixLanguage"
1177
+ }
1178
+ ]
1179
+ },
1180
+ "template": {
1181
+ "description": "A custom .wxs template to use.",
1182
+ "type": [
1183
+ "string",
1184
+ "null"
1185
+ ]
1186
+ },
1187
+ "fragmentPaths": {
1188
+ "description": "A list of paths to .wxs files with WiX fragments to use.",
1189
+ "default": [],
1190
+ "type": "array",
1191
+ "items": {
1192
+ "type": "string"
1193
+ }
1194
+ },
1195
+ "componentGroupRefs": {
1196
+ "description": "The ComponentGroup element ids you want to reference from the fragments.",
1197
+ "default": [],
1198
+ "type": "array",
1199
+ "items": {
1200
+ "type": "string"
1201
+ }
1202
+ },
1203
+ "componentRefs": {
1204
+ "description": "The Component element ids you want to reference from the fragments.",
1205
+ "default": [],
1206
+ "type": "array",
1207
+ "items": {
1208
+ "type": "string"
1209
+ }
1210
+ },
1211
+ "featureGroupRefs": {
1212
+ "description": "The FeatureGroup element ids you want to reference from the fragments.",
1213
+ "default": [],
1214
+ "type": "array",
1215
+ "items": {
1216
+ "type": "string"
1217
+ }
1218
+ },
1219
+ "featureRefs": {
1220
+ "description": "The Feature element ids you want to reference from the fragments.",
1221
+ "default": [],
1222
+ "type": "array",
1223
+ "items": {
1224
+ "type": "string"
1225
+ }
1226
+ },
1227
+ "mergeRefs": {
1228
+ "description": "The Merge element ids you want to reference from the fragments.",
1229
+ "default": [],
1230
+ "type": "array",
1231
+ "items": {
1232
+ "type": "string"
1233
+ }
1234
+ },
1235
+ "skipWebviewInstall": {
1236
+ "description": "Disables the Webview2 runtime installation after app install.",
1237
+ "default": false,
1238
+ "type": "boolean"
1239
+ },
1240
+ "license": {
1241
+ "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.",
1242
+ "type": [
1243
+ "string",
1244
+ "null"
1245
+ ]
1246
+ },
1247
+ "enableElevatedUpdateTask": {
1248
+ "description": "Create an elevated update task within Windows Task Scheduler.",
1241
1249
  "default": false,
1242
1250
  "type": "boolean"
1251
+ },
1252
+ "bannerPath": {
1253
+ "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.",
1254
+ "type": [
1255
+ "string",
1256
+ "null"
1257
+ ]
1258
+ },
1259
+ "dialogImagePath": {
1260
+ "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.",
1261
+ "type": [
1262
+ "string",
1263
+ "null"
1264
+ ]
1243
1265
  }
1244
1266
  },
1245
1267
  "additionalProperties": false
1246
1268
  },
1247
- "PatternKind": {
1248
- "description": "The application pattern.",
1249
- "oneOf": [
1269
+ "WixLanguage": {
1270
+ "description": "The languages to build using WiX.",
1271
+ "anyOf": [
1250
1272
  {
1251
- "description": "Brownfield pattern.",
1252
- "type": "object",
1253
- "required": [
1254
- "use"
1255
- ],
1256
- "properties": {
1257
- "use": {
1258
- "type": "string",
1259
- "enum": [
1260
- "brownfield"
1261
- ]
1262
- }
1273
+ "description": "A single language to build, without configuration.",
1274
+ "type": "string"
1275
+ },
1276
+ {
1277
+ "description": "A list of languages to build, without configuration.",
1278
+ "type": "array",
1279
+ "items": {
1280
+ "type": "string"
1263
1281
  }
1264
1282
  },
1265
1283
  {
1266
- "description": "Isolation pattern. Recommended for security purposes.",
1284
+ "description": "A map of languages and its configuration.",
1267
1285
  "type": "object",
1268
- "required": [
1269
- "options",
1270
- "use"
1271
- ],
1272
- "properties": {
1273
- "options": {
1274
- "type": "object",
1275
- "required": [
1276
- "dir"
1277
- ],
1278
- "properties": {
1279
- "dir": {
1280
- "description": "The dir containing the index.html file that contains the secure isolation application.",
1281
- "type": "string"
1282
- }
1283
- }
1284
- },
1285
- "use": {
1286
- "type": "string",
1287
- "enum": [
1288
- "isolation"
1289
- ]
1290
- }
1286
+ "additionalProperties": {
1287
+ "$ref": "#/definitions/WixLanguageConfig"
1291
1288
  }
1292
1289
  }
1293
1290
  ]
1294
1291
  },
1295
- "PluginConfig": {
1296
- "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.",
1297
- "type": "object",
1298
- "additionalProperties": true
1299
- },
1300
- "ProcessAllowlistConfig": {
1301
- "description": "Allowlist for the process APIs.",
1292
+ "WixLanguageConfig": {
1293
+ "description": "Configuration for a target language for the WiX build.",
1302
1294
  "type": "object",
1303
1295
  "properties": {
1304
- "all": {
1305
- "description": "Use this flag to enable all process APIs.",
1306
- "default": false,
1307
- "type": "boolean"
1308
- },
1309
- "exit": {
1310
- "description": "Enables the exit API.",
1311
- "default": false,
1312
- "type": "boolean"
1313
- },
1314
- "relaunch": {
1315
- "description": "Enables the relaunch API.",
1316
- "default": false,
1317
- "type": "boolean"
1318
- },
1319
- "relaunchDangerousAllowSymlinkMacos": {
1320
- "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.",
1321
- "default": false,
1322
- "type": "boolean"
1296
+ "localePath": {
1297
+ "description": "The path to a locale (`.wxl`) file. See <https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html>.",
1298
+ "type": [
1299
+ "string",
1300
+ "null"
1301
+ ]
1323
1302
  }
1324
1303
  },
1325
1304
  "additionalProperties": false
1326
1305
  },
1327
- "ProtocolAllowlistConfig": {
1328
- "description": "Allowlist for the custom protocols.",
1306
+ "AllowlistConfig": {
1307
+ "description": "Allowlist configuration.",
1329
1308
  "type": "object",
1330
1309
  "properties": {
1331
1310
  "all": {
1332
- "description": "Use this flag to enable all custom protocols.",
1333
- "default": false,
1334
- "type": "boolean"
1335
- },
1336
- "asset": {
1337
- "description": "Enables the asset protocol.",
1311
+ "description": "Use this flag to enable all API features.",
1338
1312
  "default": false,
1339
1313
  "type": "boolean"
1340
1314
  },
1341
- "assetScope": {
1342
- "description": "The access scope for the asset protocol.",
1343
- "default": [],
1344
- "allOf": [
1345
- {
1346
- "$ref": "#/definitions/FsAllowlistScope"
1347
- }
1348
- ]
1349
- }
1350
- },
1351
- "additionalProperties": false
1352
- },
1353
- "SecurityConfig": {
1354
- "description": "Security configuration.",
1355
- "type": "object",
1356
- "properties": {
1357
- "csp": {
1358
- "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 <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
1359
- "anyOf": [
1360
- {
1361
- "$ref": "#/definitions/Csp"
1362
- },
1363
- {
1364
- "type": "null"
1365
- }
1366
- ]
1367
- },
1368
- "dangerousDisableAssetCspModification": {
1369
- "description": "Disables the Tauri-injected CSP sources.\n\nAt compile time, Tauri parses all the frontend assets and changes the Content-Security-Policy to only allow loading of your own scripts and styles by injecting nonce and hash sources. This stricts your CSP, which may introduce issues when using along with other flexing sources.\n\nThis configuration option allows both a boolean and a list of strings as value. A boolean instructs Tauri to disable the injection for all CSP injections, and a list of strings indicates the CSP directives that Tauri cannot inject.\n\n**WARNING:** Only disable this if you know what you are doing and have properly configured the CSP. Your application might be vulnerable to XSS attacks without this Tauri protection.",
1370
- "default": false,
1315
+ "fs": {
1316
+ "description": "File system API allowlist.",
1317
+ "default": {
1318
+ "all": false,
1319
+ "copyFile": false,
1320
+ "createDir": false,
1321
+ "readDir": false,
1322
+ "readFile": false,
1323
+ "removeDir": false,
1324
+ "removeFile": false,
1325
+ "renameFile": false,
1326
+ "scope": [],
1327
+ "writeFile": false
1328
+ },
1371
1329
  "allOf": [
1372
1330
  {
1373
- "$ref": "#/definitions/DisabledCspModificationKind"
1374
- }
1375
- ]
1376
- },
1377
- "devCsp": {
1378
- "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 <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
1379
- "anyOf": [
1380
- {
1381
- "$ref": "#/definitions/Csp"
1382
- },
1383
- {
1384
- "type": "null"
1331
+ "$ref": "#/definitions/FsAllowlistConfig"
1385
1332
  }
1386
1333
  ]
1387
1334
  },
1388
- "freezePrototype": {
1389
- "description": "Freeze the `Object.prototype` when using the custom protocol.",
1390
- "default": false,
1391
- "type": "boolean"
1392
- }
1393
- },
1394
- "additionalProperties": false
1395
- },
1396
- "ShellAllowedArg": {
1397
- "description": "A command argument allowed to be executed by the webview API.",
1398
- "anyOf": [
1399
- {
1400
- "description": "A non-configurable argument that is passed to the command in the order it was specified.",
1401
- "type": "string"
1402
- },
1403
- {
1404
- "description": "A variable that is set while calling the command from the webview API.",
1405
- "type": "object",
1406
- "required": [
1407
- "validator"
1408
- ],
1409
- "properties": {
1410
- "validator": {
1411
- "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",
1412
- "type": "string"
1413
- }
1335
+ "window": {
1336
+ "description": "Window API allowlist.",
1337
+ "default": {
1338
+ "all": false,
1339
+ "center": false,
1340
+ "close": false,
1341
+ "create": false,
1342
+ "hide": false,
1343
+ "maximize": false,
1344
+ "minimize": false,
1345
+ "print": false,
1346
+ "requestUserAttention": false,
1347
+ "setAlwaysOnTop": false,
1348
+ "setDecorations": false,
1349
+ "setFocus": false,
1350
+ "setFullscreen": false,
1351
+ "setIcon": false,
1352
+ "setMaxSize": false,
1353
+ "setMinSize": false,
1354
+ "setPosition": false,
1355
+ "setResizable": false,
1356
+ "setSize": false,
1357
+ "setSkipTaskbar": false,
1358
+ "setTitle": false,
1359
+ "show": false,
1360
+ "startDragging": false,
1361
+ "unmaximize": false,
1362
+ "unminimize": false
1414
1363
  },
1415
- "additionalProperties": false
1416
- }
1417
- ]
1418
- },
1419
- "ShellAllowedArgs": {
1420
- "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.",
1421
- "anyOf": [
1422
- {
1423
- "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.",
1424
- "type": "boolean"
1425
- },
1426
- {
1427
- "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.",
1428
- "type": "array",
1429
- "items": {
1430
- "$ref": "#/definitions/ShellAllowedArg"
1431
- }
1432
- }
1433
- ]
1434
- },
1435
- "ShellAllowedCommand": {
1436
- "description": "A command allowed to be executed by the webview API.",
1437
- "type": "object",
1438
- "required": [
1439
- "name"
1440
- ],
1441
- "properties": {
1442
- "args": {
1443
- "description": "The allowed arguments for the command execution.",
1444
- "default": false,
1445
1364
  "allOf": [
1446
1365
  {
1447
- "$ref": "#/definitions/ShellAllowedArgs"
1366
+ "$ref": "#/definitions/WindowAllowlistConfig"
1448
1367
  }
1449
1368
  ]
1450
1369
  },
1451
- "cmd": {
1452
- "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`.",
1453
- "default": "",
1454
- "type": "string"
1455
- },
1456
- "name": {
1457
- "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.",
1458
- "type": "string"
1459
- },
1460
- "sidecar": {
1461
- "description": "If this command is a sidecar command.",
1462
- "default": false,
1463
- "type": "boolean"
1464
- }
1465
- }
1466
- },
1467
- "ShellAllowlistConfig": {
1468
- "description": "Allowlist for the shell APIs.",
1469
- "type": "object",
1470
- "properties": {
1471
- "all": {
1472
- "description": "Use this flag to enable all shell API features.",
1473
- "default": false,
1474
- "type": "boolean"
1475
- },
1476
- "execute": {
1477
- "description": "Enable binary execution.",
1478
- "default": false,
1479
- "type": "boolean"
1480
- },
1481
- "open": {
1482
- "description": "Open URL with the user's default application.",
1483
- "default": false,
1370
+ "shell": {
1371
+ "description": "Shell API allowlist.",
1372
+ "default": {
1373
+ "all": false,
1374
+ "execute": false,
1375
+ "open": false,
1376
+ "scope": [],
1377
+ "sidecar": false
1378
+ },
1484
1379
  "allOf": [
1485
1380
  {
1486
- "$ref": "#/definitions/ShellAllowlistOpen"
1381
+ "$ref": "#/definitions/ShellAllowlistConfig"
1487
1382
  }
1488
1383
  ]
1489
1384
  },
1490
- "scope": {
1491
- "description": "Access scope for the binary execution APIs. Sidecars are automatically enabled.",
1492
- "default": [],
1385
+ "dialog": {
1386
+ "description": "Dialog API allowlist.",
1387
+ "default": {
1388
+ "all": false,
1389
+ "ask": false,
1390
+ "confirm": false,
1391
+ "message": false,
1392
+ "open": false,
1393
+ "save": false
1394
+ },
1493
1395
  "allOf": [
1494
1396
  {
1495
- "$ref": "#/definitions/ShellAllowlistScope"
1397
+ "$ref": "#/definitions/DialogAllowlistConfig"
1496
1398
  }
1497
1399
  ]
1498
1400
  },
1499
- "sidecar": {
1500
- "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.studio/docs/guides/bundler/sidecar/>.",
1501
- "default": false,
1502
- "type": "boolean"
1503
- }
1504
- },
1505
- "additionalProperties": false
1506
- },
1507
- "ShellAllowlistOpen": {
1508
- "description": "Defines the `shell > open` api scope.",
1509
- "anyOf": [
1510
- {
1511
- "description": "If the shell open API should be enabled.\n\nIf enabled, the default validation regex (`^https?://`) is used.",
1512
- "type": "boolean"
1513
- },
1514
- {
1515
- "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`.",
1516
- "type": "string"
1517
- }
1518
- ]
1519
- },
1520
- "ShellAllowlistScope": {
1521
- "description": "Shell scope definition. It is a list of command names and associated CLI arguments that restrict the API access from the webview.",
1522
- "type": "array",
1523
- "items": {
1524
- "$ref": "#/definitions/ShellAllowedCommand"
1525
- }
1526
- },
1527
- "SystemTrayConfig": {
1528
- "description": "Configuration for application system tray icon.",
1529
- "type": "object",
1530
- "required": [
1531
- "iconPath"
1532
- ],
1533
- "properties": {
1534
- "iconAsTemplate": {
1535
- "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.",
1536
- "default": false,
1537
- "type": "boolean"
1538
- },
1539
- "iconPath": {
1540
- "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.",
1541
- "type": "string"
1542
- }
1543
- },
1544
- "additionalProperties": false
1545
- },
1546
- "TauriConfig": {
1547
- "description": "The Tauri configuration object.",
1548
- "type": "object",
1549
- "properties": {
1550
- "allowlist": {
1551
- "description": "The allowlist configuration.",
1401
+ "http": {
1402
+ "description": "HTTP API allowlist.",
1552
1403
  "default": {
1553
1404
  "all": false,
1554
- "clipboard": {
1555
- "all": false,
1556
- "readText": false,
1557
- "writeText": false
1558
- },
1559
- "dialog": {
1560
- "all": false,
1561
- "ask": false,
1562
- "confirm": false,
1563
- "message": false,
1564
- "open": false,
1565
- "save": false
1566
- },
1567
- "fs": {
1568
- "all": false,
1569
- "copyFile": false,
1570
- "createDir": false,
1571
- "readDir": false,
1572
- "readFile": false,
1573
- "removeDir": false,
1574
- "removeFile": false,
1575
- "renameFile": false,
1576
- "scope": [],
1577
- "writeFile": false
1578
- },
1579
- "globalShortcut": {
1580
- "all": false
1581
- },
1582
- "http": {
1583
- "all": false,
1584
- "request": false,
1585
- "scope": []
1586
- },
1587
- "notification": {
1588
- "all": false
1589
- },
1590
- "os": {
1591
- "all": false
1592
- },
1593
- "path": {
1594
- "all": false
1595
- },
1596
- "process": {
1597
- "all": false,
1598
- "exit": false,
1599
- "relaunch": false,
1600
- "relaunchDangerousAllowSymlinkMacos": false
1601
- },
1602
- "protocol": {
1603
- "all": false,
1604
- "asset": false,
1605
- "assetScope": []
1606
- },
1607
- "shell": {
1608
- "all": false,
1609
- "execute": false,
1610
- "open": false,
1611
- "scope": [],
1612
- "sidecar": false
1613
- },
1614
- "window": {
1615
- "all": false,
1616
- "center": false,
1617
- "close": false,
1618
- "create": false,
1619
- "hide": false,
1620
- "maximize": false,
1621
- "minimize": false,
1622
- "print": false,
1623
- "requestUserAttention": false,
1624
- "setAlwaysOnTop": false,
1625
- "setDecorations": false,
1626
- "setFocus": false,
1627
- "setFullscreen": false,
1628
- "setIcon": false,
1629
- "setMaxSize": false,
1630
- "setMinSize": false,
1631
- "setPosition": false,
1632
- "setResizable": false,
1633
- "setSize": false,
1634
- "setSkipTaskbar": false,
1635
- "setTitle": false,
1636
- "show": false,
1637
- "startDragging": false,
1638
- "unmaximize": false,
1639
- "unminimize": false
1640
- }
1405
+ "request": false,
1406
+ "scope": []
1641
1407
  },
1642
1408
  "allOf": [
1643
1409
  {
1644
- "$ref": "#/definitions/AllowlistConfig"
1410
+ "$ref": "#/definitions/HttpAllowlistConfig"
1645
1411
  }
1646
1412
  ]
1647
1413
  },
1648
- "bundle": {
1649
- "description": "The bundler configuration.",
1414
+ "notification": {
1415
+ "description": "Notification API allowlist.",
1650
1416
  "default": {
1651
- "active": false,
1652
- "deb": {
1653
- "files": {}
1654
- },
1655
- "icon": [],
1656
- "identifier": "",
1657
- "macOS": {
1658
- "minimumSystemVersion": "10.13"
1659
- },
1660
- "windows": {
1661
- "allowDowngrades": true,
1662
- "certificateThumbprint": null,
1663
- "digestAlgorithm": null,
1664
- "timestampUrl": null,
1665
- "tsp": null,
1666
- "webviewFixedRuntimePath": null,
1667
- "wix": null
1668
- }
1417
+ "all": false
1669
1418
  },
1670
1419
  "allOf": [
1671
1420
  {
1672
- "$ref": "#/definitions/BundleConfig"
1421
+ "$ref": "#/definitions/NotificationAllowlistConfig"
1673
1422
  }
1674
1423
  ]
1675
1424
  },
1676
- "cli": {
1677
- "description": "The CLI configuration.",
1678
- "anyOf": [
1679
- {
1680
- "$ref": "#/definitions/CliConfig"
1681
- },
1425
+ "globalShortcut": {
1426
+ "description": "Global shortcut API allowlist.",
1427
+ "default": {
1428
+ "all": false
1429
+ },
1430
+ "allOf": [
1682
1431
  {
1683
- "type": "null"
1432
+ "$ref": "#/definitions/GlobalShortcutAllowlistConfig"
1684
1433
  }
1685
1434
  ]
1686
1435
  },
1687
- "macOSPrivateApi": {
1688
- "description": "MacOS private API configuration. Enables the transparent background API and sets the `fullScreenEnabled` preference to `true`.",
1689
- "default": false,
1690
- "type": "boolean"
1691
- },
1692
- "pattern": {
1693
- "description": "The pattern to use.",
1436
+ "os": {
1437
+ "description": "OS allowlist.",
1694
1438
  "default": {
1695
- "use": "brownfield"
1439
+ "all": false
1696
1440
  },
1697
1441
  "allOf": [
1698
1442
  {
1699
- "$ref": "#/definitions/PatternKind"
1443
+ "$ref": "#/definitions/OsAllowlistConfig"
1700
1444
  }
1701
1445
  ]
1702
1446
  },
1703
- "security": {
1704
- "description": "Security configuration.",
1447
+ "path": {
1448
+ "description": "Path API allowlist.",
1705
1449
  "default": {
1706
- "dangerousDisableAssetCspModification": false,
1707
- "freezePrototype": false
1450
+ "all": false
1708
1451
  },
1709
1452
  "allOf": [
1710
1453
  {
1711
- "$ref": "#/definitions/SecurityConfig"
1454
+ "$ref": "#/definitions/PathAllowlistConfig"
1712
1455
  }
1713
1456
  ]
1714
1457
  },
1715
- "systemTray": {
1716
- "description": "Configuration for app system tray.",
1717
- "anyOf": [
1718
- {
1719
- "$ref": "#/definitions/SystemTrayConfig"
1720
- },
1458
+ "protocol": {
1459
+ "description": "Custom protocol allowlist.",
1460
+ "default": {
1461
+ "all": false,
1462
+ "asset": false,
1463
+ "assetScope": []
1464
+ },
1465
+ "allOf": [
1721
1466
  {
1722
- "type": "null"
1467
+ "$ref": "#/definitions/ProtocolAllowlistConfig"
1723
1468
  }
1724
1469
  ]
1725
1470
  },
1726
- "updater": {
1727
- "description": "The updater configuration.",
1471
+ "process": {
1472
+ "description": "Process API allowlist.",
1728
1473
  "default": {
1729
- "active": false,
1730
- "dialog": true,
1731
- "pubkey": ""
1474
+ "all": false,
1475
+ "exit": false,
1476
+ "relaunch": false,
1477
+ "relaunchDangerousAllowSymlinkMacos": false
1732
1478
  },
1733
1479
  "allOf": [
1734
1480
  {
1735
- "$ref": "#/definitions/UpdaterConfig"
1481
+ "$ref": "#/definitions/ProcessAllowlistConfig"
1736
1482
  }
1737
1483
  ]
1738
1484
  },
1739
- "windows": {
1740
- "description": "The windows configuration.",
1485
+ "clipboard": {
1486
+ "description": "Clipboard APIs allowlist.",
1487
+ "default": {
1488
+ "all": false,
1489
+ "readText": false,
1490
+ "writeText": false
1491
+ },
1492
+ "allOf": [
1493
+ {
1494
+ "$ref": "#/definitions/ClipboardAllowlistConfig"
1495
+ }
1496
+ ]
1497
+ }
1498
+ },
1499
+ "additionalProperties": false
1500
+ },
1501
+ "FsAllowlistConfig": {
1502
+ "description": "Allowlist for the file system APIs.",
1503
+ "type": "object",
1504
+ "properties": {
1505
+ "scope": {
1506
+ "description": "The access scope for the filesystem APIs.",
1741
1507
  "default": [],
1742
- "type": "array",
1743
- "items": {
1744
- "$ref": "#/definitions/WindowConfig"
1745
- }
1508
+ "allOf": [
1509
+ {
1510
+ "$ref": "#/definitions/FsAllowlistScope"
1511
+ }
1512
+ ]
1513
+ },
1514
+ "all": {
1515
+ "description": "Use this flag to enable all file system API features.",
1516
+ "default": false,
1517
+ "type": "boolean"
1518
+ },
1519
+ "readFile": {
1520
+ "description": "Read file from local filesystem.",
1521
+ "default": false,
1522
+ "type": "boolean"
1523
+ },
1524
+ "writeFile": {
1525
+ "description": "Write file to local filesystem.",
1526
+ "default": false,
1527
+ "type": "boolean"
1528
+ },
1529
+ "readDir": {
1530
+ "description": "Read directory from local filesystem.",
1531
+ "default": false,
1532
+ "type": "boolean"
1533
+ },
1534
+ "copyFile": {
1535
+ "description": "Copy file from local filesystem.",
1536
+ "default": false,
1537
+ "type": "boolean"
1538
+ },
1539
+ "createDir": {
1540
+ "description": "Create directory from local filesystem.",
1541
+ "default": false,
1542
+ "type": "boolean"
1543
+ },
1544
+ "removeDir": {
1545
+ "description": "Remove directory from local filesystem.",
1546
+ "default": false,
1547
+ "type": "boolean"
1548
+ },
1549
+ "removeFile": {
1550
+ "description": "Remove file from local filesystem.",
1551
+ "default": false,
1552
+ "type": "boolean"
1553
+ },
1554
+ "renameFile": {
1555
+ "description": "Rename file from local filesystem.",
1556
+ "default": false,
1557
+ "type": "boolean"
1746
1558
  }
1747
1559
  },
1748
1560
  "additionalProperties": false
1749
1561
  },
1750
- "Theme": {
1751
- "description": "System theme.",
1752
- "type": "string",
1753
- "enum": [
1754
- "Light",
1755
- "Dark"
1562
+ "FsAllowlistScope": {
1563
+ "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`.",
1564
+ "anyOf": [
1565
+ {
1566
+ "description": "A list of paths that are allowed by this scope.",
1567
+ "type": "array",
1568
+ "items": {
1569
+ "type": "string"
1570
+ }
1571
+ },
1572
+ {
1573
+ "description": "A complete scope configuration.",
1574
+ "type": "object",
1575
+ "properties": {
1576
+ "allow": {
1577
+ "description": "A list of paths that are allowed by this scope.",
1578
+ "default": [],
1579
+ "type": "array",
1580
+ "items": {
1581
+ "type": "string"
1582
+ }
1583
+ },
1584
+ "deny": {
1585
+ "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
1586
+ "default": [],
1587
+ "type": "array",
1588
+ "items": {
1589
+ "type": "string"
1590
+ }
1591
+ }
1592
+ }
1593
+ }
1756
1594
  ]
1757
1595
  },
1758
- "UpdaterConfig": {
1759
- "description": "The Updater configuration object.",
1596
+ "WindowAllowlistConfig": {
1597
+ "description": "Allowlist for the window APIs.",
1760
1598
  "type": "object",
1761
1599
  "properties": {
1762
- "active": {
1763
- "description": "Whether the updater is active or not.",
1600
+ "all": {
1601
+ "description": "Use this flag to enable all window API features.",
1764
1602
  "default": false,
1765
1603
  "type": "boolean"
1766
1604
  },
1767
- "dialog": {
1768
- "description": "Display built-in dialog or use event system if disabled.",
1769
- "default": true,
1605
+ "create": {
1606
+ "description": "Allows dynamic window creation.",
1607
+ "default": false,
1608
+ "type": "boolean"
1609
+ },
1610
+ "center": {
1611
+ "description": "Allows centering the window.",
1612
+ "default": false,
1613
+ "type": "boolean"
1614
+ },
1615
+ "requestUserAttention": {
1616
+ "description": "Allows requesting user attention on the window.",
1617
+ "default": false,
1618
+ "type": "boolean"
1619
+ },
1620
+ "setResizable": {
1621
+ "description": "Allows setting the resizable flag of the window.",
1622
+ "default": false,
1623
+ "type": "boolean"
1624
+ },
1625
+ "setTitle": {
1626
+ "description": "Allows changing the window title.",
1627
+ "default": false,
1628
+ "type": "boolean"
1629
+ },
1630
+ "maximize": {
1631
+ "description": "Allows maximizing the window.",
1632
+ "default": false,
1633
+ "type": "boolean"
1634
+ },
1635
+ "unmaximize": {
1636
+ "description": "Allows unmaximizing the window.",
1637
+ "default": false,
1638
+ "type": "boolean"
1639
+ },
1640
+ "minimize": {
1641
+ "description": "Allows minimizing the window.",
1642
+ "default": false,
1643
+ "type": "boolean"
1644
+ },
1645
+ "unminimize": {
1646
+ "description": "Allows unminimizing the window.",
1647
+ "default": false,
1648
+ "type": "boolean"
1649
+ },
1650
+ "show": {
1651
+ "description": "Allows showing the window.",
1652
+ "default": false,
1653
+ "type": "boolean"
1654
+ },
1655
+ "hide": {
1656
+ "description": "Allows hiding the window.",
1657
+ "default": false,
1658
+ "type": "boolean"
1659
+ },
1660
+ "close": {
1661
+ "description": "Allows closing the window.",
1662
+ "default": false,
1663
+ "type": "boolean"
1664
+ },
1665
+ "setDecorations": {
1666
+ "description": "Allows setting the decorations flag of the window.",
1667
+ "default": false,
1668
+ "type": "boolean"
1669
+ },
1670
+ "setAlwaysOnTop": {
1671
+ "description": "Allows setting the always_on_top flag of the window.",
1672
+ "default": false,
1673
+ "type": "boolean"
1674
+ },
1675
+ "setSize": {
1676
+ "description": "Allows setting the window size.",
1677
+ "default": false,
1678
+ "type": "boolean"
1679
+ },
1680
+ "setMinSize": {
1681
+ "description": "Allows setting the window minimum size.",
1682
+ "default": false,
1770
1683
  "type": "boolean"
1771
1684
  },
1772
- "endpoints": {
1773
- "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\n\n- \"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.",
1774
- "type": [
1775
- "array",
1776
- "null"
1777
- ],
1778
- "items": {
1779
- "$ref": "#/definitions/UpdaterEndpoint"
1780
- }
1781
- },
1782
- "pubkey": {
1783
- "description": "Signature public key.",
1784
- "default": "",
1785
- "type": "string"
1786
- }
1787
- },
1788
- "additionalProperties": false
1789
- },
1790
- "UpdaterEndpoint": {
1791
- "description": "A URL to an updater server.\n\nThe URL must use the `https` scheme on production.",
1792
- "type": "string",
1793
- "format": "uri"
1794
- },
1795
- "WindowAllowlistConfig": {
1796
- "description": "Allowlist for the window APIs.",
1797
- "type": "object",
1798
- "properties": {
1799
- "all": {
1800
- "description": "Use this flag to enable all window API features.",
1685
+ "setMaxSize": {
1686
+ "description": "Allows setting the window maximum size.",
1801
1687
  "default": false,
1802
1688
  "type": "boolean"
1803
1689
  },
1804
- "center": {
1805
- "description": "Allows centering the window.",
1690
+ "setPosition": {
1691
+ "description": "Allows changing the position of the window.",
1806
1692
  "default": false,
1807
1693
  "type": "boolean"
1808
1694
  },
1809
- "close": {
1810
- "description": "Allows closing the window.",
1695
+ "setFullscreen": {
1696
+ "description": "Allows setting the fullscreen flag of the window.",
1811
1697
  "default": false,
1812
1698
  "type": "boolean"
1813
1699
  },
1814
- "create": {
1815
- "description": "Allows dynamic window creation.",
1700
+ "setFocus": {
1701
+ "description": "Allows focusing the window.",
1816
1702
  "default": false,
1817
1703
  "type": "boolean"
1818
1704
  },
1819
- "hide": {
1820
- "description": "Allows hiding the window.",
1705
+ "setIcon": {
1706
+ "description": "Allows changing the window icon.",
1821
1707
  "default": false,
1822
1708
  "type": "boolean"
1823
1709
  },
1824
- "maximize": {
1825
- "description": "Allows maximizing the window.",
1710
+ "setSkipTaskbar": {
1711
+ "description": "Allows setting the skip_taskbar flag of the window.",
1826
1712
  "default": false,
1827
1713
  "type": "boolean"
1828
1714
  },
1829
- "minimize": {
1830
- "description": "Allows minimizing the window.",
1715
+ "startDragging": {
1716
+ "description": "Allows start dragging on the window.",
1831
1717
  "default": false,
1832
1718
  "type": "boolean"
1833
1719
  },
@@ -1835,457 +1721,603 @@
1835
1721
  "description": "Allows opening the system dialog to print the window content.",
1836
1722
  "default": false,
1837
1723
  "type": "boolean"
1724
+ }
1725
+ },
1726
+ "additionalProperties": false
1727
+ },
1728
+ "ShellAllowlistConfig": {
1729
+ "description": "Allowlist for the shell APIs.",
1730
+ "type": "object",
1731
+ "properties": {
1732
+ "scope": {
1733
+ "description": "Access scope for the binary execution APIs. Sidecars are automatically enabled.",
1734
+ "default": [],
1735
+ "allOf": [
1736
+ {
1737
+ "$ref": "#/definitions/ShellAllowlistScope"
1738
+ }
1739
+ ]
1838
1740
  },
1839
- "requestUserAttention": {
1840
- "description": "Allows requesting user attention on the window.",
1741
+ "all": {
1742
+ "description": "Use this flag to enable all shell API features.",
1841
1743
  "default": false,
1842
1744
  "type": "boolean"
1843
1745
  },
1844
- "setAlwaysOnTop": {
1845
- "description": "Allows setting the always_on_top flag of the window.",
1746
+ "execute": {
1747
+ "description": "Enable binary execution.",
1846
1748
  "default": false,
1847
1749
  "type": "boolean"
1848
1750
  },
1849
- "setDecorations": {
1850
- "description": "Allows setting the decorations flag of the window.",
1751
+ "sidecar": {
1752
+ "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.studio/v1/guides/building/sidecar>.",
1851
1753
  "default": false,
1852
1754
  "type": "boolean"
1853
1755
  },
1854
- "setFocus": {
1855
- "description": "Allows focusing the window.",
1756
+ "open": {
1757
+ "description": "Open URL with the user's default application.",
1856
1758
  "default": false,
1857
- "type": "boolean"
1759
+ "allOf": [
1760
+ {
1761
+ "$ref": "#/definitions/ShellAllowlistOpen"
1762
+ }
1763
+ ]
1764
+ }
1765
+ },
1766
+ "additionalProperties": false
1767
+ },
1768
+ "ShellAllowlistScope": {
1769
+ "description": "Shell scope definition. It is a list of command names and associated CLI arguments that restrict the API access from the webview.",
1770
+ "type": "array",
1771
+ "items": {
1772
+ "$ref": "#/definitions/ShellAllowedCommand"
1773
+ }
1774
+ },
1775
+ "ShellAllowedCommand": {
1776
+ "description": "A command allowed to be executed by the webview API.",
1777
+ "type": "object",
1778
+ "required": [
1779
+ "name"
1780
+ ],
1781
+ "properties": {
1782
+ "name": {
1783
+ "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.",
1784
+ "type": "string"
1858
1785
  },
1859
- "setFullscreen": {
1860
- "description": "Allows setting the fullscreen flag of the window.",
1786
+ "cmd": {
1787
+ "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`.",
1788
+ "default": "",
1789
+ "type": "string"
1790
+ },
1791
+ "args": {
1792
+ "description": "The allowed arguments for the command execution.",
1793
+ "default": false,
1794
+ "allOf": [
1795
+ {
1796
+ "$ref": "#/definitions/ShellAllowedArgs"
1797
+ }
1798
+ ]
1799
+ },
1800
+ "sidecar": {
1801
+ "description": "If this command is a sidecar command.",
1861
1802
  "default": false,
1862
1803
  "type": "boolean"
1804
+ }
1805
+ }
1806
+ },
1807
+ "ShellAllowedArgs": {
1808
+ "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.",
1809
+ "anyOf": [
1810
+ {
1811
+ "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.",
1812
+ "type": "boolean"
1863
1813
  },
1864
- "setIcon": {
1865
- "description": "Allows changing the window icon.",
1814
+ {
1815
+ "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.",
1816
+ "type": "array",
1817
+ "items": {
1818
+ "$ref": "#/definitions/ShellAllowedArg"
1819
+ }
1820
+ }
1821
+ ]
1822
+ },
1823
+ "ShellAllowedArg": {
1824
+ "description": "A command argument allowed to be executed by the webview API.",
1825
+ "anyOf": [
1826
+ {
1827
+ "description": "A non-configurable argument that is passed to the command in the order it was specified.",
1828
+ "type": "string"
1829
+ },
1830
+ {
1831
+ "description": "A variable that is set while calling the command from the webview API.",
1832
+ "type": "object",
1833
+ "required": [
1834
+ "validator"
1835
+ ],
1836
+ "properties": {
1837
+ "validator": {
1838
+ "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",
1839
+ "type": "string"
1840
+ }
1841
+ },
1842
+ "additionalProperties": false
1843
+ }
1844
+ ]
1845
+ },
1846
+ "ShellAllowlistOpen": {
1847
+ "description": "Defines the `shell > open` api scope.",
1848
+ "anyOf": [
1849
+ {
1850
+ "description": "If the shell open API should be enabled.\n\nIf enabled, the default validation regex (`^https?://`) is used.",
1851
+ "type": "boolean"
1852
+ },
1853
+ {
1854
+ "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`.",
1855
+ "type": "string"
1856
+ }
1857
+ ]
1858
+ },
1859
+ "DialogAllowlistConfig": {
1860
+ "description": "Allowlist for the dialog APIs.",
1861
+ "type": "object",
1862
+ "properties": {
1863
+ "all": {
1864
+ "description": "Use this flag to enable all dialog API features.",
1866
1865
  "default": false,
1867
1866
  "type": "boolean"
1868
1867
  },
1869
- "setMaxSize": {
1870
- "description": "Allows setting the window maximum size.",
1868
+ "open": {
1869
+ "description": "Allows the API to open a dialog window to pick files.",
1871
1870
  "default": false,
1872
1871
  "type": "boolean"
1873
1872
  },
1874
- "setMinSize": {
1875
- "description": "Allows setting the window minimum size.",
1873
+ "save": {
1874
+ "description": "Allows the API to open a dialog window to pick where to save files.",
1876
1875
  "default": false,
1877
1876
  "type": "boolean"
1878
1877
  },
1879
- "setPosition": {
1880
- "description": "Allows changing the position of the window.",
1878
+ "message": {
1879
+ "description": "Allows the API to show a message dialog window.",
1881
1880
  "default": false,
1882
1881
  "type": "boolean"
1883
1882
  },
1884
- "setResizable": {
1885
- "description": "Allows setting the resizable flag of the window.",
1883
+ "ask": {
1884
+ "description": "Allows the API to show a dialog window with Yes/No buttons.",
1886
1885
  "default": false,
1887
1886
  "type": "boolean"
1888
1887
  },
1889
- "setSize": {
1890
- "description": "Allows setting the window size.",
1888
+ "confirm": {
1889
+ "description": "Allows the API to show a dialog window with Ok/Cancel buttons.",
1891
1890
  "default": false,
1892
1891
  "type": "boolean"
1892
+ }
1893
+ },
1894
+ "additionalProperties": false
1895
+ },
1896
+ "HttpAllowlistConfig": {
1897
+ "description": "Allowlist for the HTTP APIs.",
1898
+ "type": "object",
1899
+ "properties": {
1900
+ "scope": {
1901
+ "description": "The access scope for the HTTP APIs.",
1902
+ "default": [],
1903
+ "allOf": [
1904
+ {
1905
+ "$ref": "#/definitions/HttpAllowlistScope"
1906
+ }
1907
+ ]
1893
1908
  },
1894
- "setSkipTaskbar": {
1895
- "description": "Allows setting the skip_taskbar flag of the window.",
1909
+ "all": {
1910
+ "description": "Use this flag to enable all HTTP API features.",
1896
1911
  "default": false,
1897
1912
  "type": "boolean"
1898
1913
  },
1899
- "setTitle": {
1900
- "description": "Allows changing the window title.",
1914
+ "request": {
1915
+ "description": "Allows making HTTP requests.",
1916
+ "default": false,
1917
+ "type": "boolean"
1918
+ }
1919
+ },
1920
+ "additionalProperties": false
1921
+ },
1922
+ "HttpAllowlistScope": {
1923
+ "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/\"",
1924
+ "type": "array",
1925
+ "items": {
1926
+ "type": "string",
1927
+ "format": "uri"
1928
+ }
1929
+ },
1930
+ "NotificationAllowlistConfig": {
1931
+ "description": "Allowlist for the notification APIs.",
1932
+ "type": "object",
1933
+ "properties": {
1934
+ "all": {
1935
+ "description": "Use this flag to enable all notification API features.",
1936
+ "default": false,
1937
+ "type": "boolean"
1938
+ }
1939
+ },
1940
+ "additionalProperties": false
1941
+ },
1942
+ "GlobalShortcutAllowlistConfig": {
1943
+ "description": "Allowlist for the global shortcut APIs.",
1944
+ "type": "object",
1945
+ "properties": {
1946
+ "all": {
1947
+ "description": "Use this flag to enable all global shortcut API features.",
1901
1948
  "default": false,
1902
1949
  "type": "boolean"
1903
- },
1904
- "show": {
1905
- "description": "Allows showing the window.",
1950
+ }
1951
+ },
1952
+ "additionalProperties": false
1953
+ },
1954
+ "OsAllowlistConfig": {
1955
+ "description": "Allowlist for the OS APIs.",
1956
+ "type": "object",
1957
+ "properties": {
1958
+ "all": {
1959
+ "description": "Use this flag to enable all OS API features.",
1906
1960
  "default": false,
1907
1961
  "type": "boolean"
1908
- },
1909
- "startDragging": {
1910
- "description": "Allows start dragging on the window.",
1962
+ }
1963
+ },
1964
+ "additionalProperties": false
1965
+ },
1966
+ "PathAllowlistConfig": {
1967
+ "description": "Allowlist for the path APIs.",
1968
+ "type": "object",
1969
+ "properties": {
1970
+ "all": {
1971
+ "description": "Use this flag to enable all path API features.",
1911
1972
  "default": false,
1912
1973
  "type": "boolean"
1974
+ }
1975
+ },
1976
+ "additionalProperties": false
1977
+ },
1978
+ "ProtocolAllowlistConfig": {
1979
+ "description": "Allowlist for the custom protocols.",
1980
+ "type": "object",
1981
+ "properties": {
1982
+ "assetScope": {
1983
+ "description": "The access scope for the asset protocol.",
1984
+ "default": [],
1985
+ "allOf": [
1986
+ {
1987
+ "$ref": "#/definitions/FsAllowlistScope"
1988
+ }
1989
+ ]
1913
1990
  },
1914
- "unmaximize": {
1915
- "description": "Allows unmaximizing the window.",
1991
+ "all": {
1992
+ "description": "Use this flag to enable all custom protocols.",
1916
1993
  "default": false,
1917
1994
  "type": "boolean"
1918
1995
  },
1919
- "unminimize": {
1920
- "description": "Allows unminimizing the window.",
1996
+ "asset": {
1997
+ "description": "Enables the asset protocol.",
1921
1998
  "default": false,
1922
1999
  "type": "boolean"
1923
2000
  }
1924
2001
  },
1925
2002
  "additionalProperties": false
1926
2003
  },
1927
- "WindowConfig": {
1928
- "description": "The window configuration object.",
2004
+ "ProcessAllowlistConfig": {
2005
+ "description": "Allowlist for the process APIs.",
1929
2006
  "type": "object",
1930
2007
  "properties": {
1931
- "alwaysOnTop": {
1932
- "description": "Whether the window should always be on top of other windows.",
2008
+ "all": {
2009
+ "description": "Use this flag to enable all process APIs.",
1933
2010
  "default": false,
1934
2011
  "type": "boolean"
1935
2012
  },
1936
- "center": {
1937
- "description": "Whether or not the window starts centered or not.",
2013
+ "relaunch": {
2014
+ "description": "Enables the relaunch API.",
1938
2015
  "default": false,
1939
2016
  "type": "boolean"
1940
2017
  },
1941
- "decorations": {
1942
- "description": "Whether the window should have borders and bars.",
1943
- "default": true,
1944
- "type": "boolean"
1945
- },
1946
- "fileDropEnabled": {
1947
- "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.",
1948
- "default": true,
1949
- "type": "boolean"
1950
- },
1951
- "focus": {
1952
- "description": "Whether the window will be initially hidden or focused.",
1953
- "default": true,
2018
+ "relaunchDangerousAllowSymlinkMacos": {
2019
+ "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.",
2020
+ "default": false,
1954
2021
  "type": "boolean"
1955
2022
  },
1956
- "fullscreen": {
1957
- "description": "Whether the window starts as fullscreen or not.",
2023
+ "exit": {
2024
+ "description": "Enables the exit API.",
1958
2025
  "default": false,
1959
2026
  "type": "boolean"
1960
- },
1961
- "height": {
1962
- "description": "The window height.",
1963
- "default": 600.0,
1964
- "type": "number",
1965
- "format": "double"
1966
- },
1967
- "label": {
1968
- "description": "The window identifier. It must be alphanumeric.",
1969
- "default": "main",
1970
- "type": "string"
1971
- },
1972
- "maxHeight": {
1973
- "description": "The max window height.",
1974
- "type": [
1975
- "number",
1976
- "null"
1977
- ],
1978
- "format": "double"
1979
- },
1980
- "maxWidth": {
1981
- "description": "The max window width.",
1982
- "type": [
1983
- "number",
1984
- "null"
1985
- ],
1986
- "format": "double"
1987
- },
1988
- "maximized": {
1989
- "description": "Whether the window is maximized or not.",
2027
+ }
2028
+ },
2029
+ "additionalProperties": false
2030
+ },
2031
+ "ClipboardAllowlistConfig": {
2032
+ "description": "Allowlist for the clipboard APIs.",
2033
+ "type": "object",
2034
+ "properties": {
2035
+ "all": {
2036
+ "description": "Use this flag to enable all clipboard APIs.",
1990
2037
  "default": false,
1991
2038
  "type": "boolean"
1992
2039
  },
1993
- "minHeight": {
1994
- "description": "The min window height.",
1995
- "type": [
1996
- "number",
1997
- "null"
1998
- ],
1999
- "format": "double"
2000
- },
2001
- "minWidth": {
2002
- "description": "The min window width.",
2003
- "type": [
2004
- "number",
2005
- "null"
2006
- ],
2007
- "format": "double"
2008
- },
2009
- "resizable": {
2010
- "description": "Whether the window is resizable or not.",
2011
- "default": true,
2040
+ "writeText": {
2041
+ "description": "Enables the clipboard's `writeText` API.",
2042
+ "default": false,
2012
2043
  "type": "boolean"
2013
2044
  },
2014
- "skipTaskbar": {
2015
- "description": "Whether or not the window icon should be added to the taskbar.",
2045
+ "readText": {
2046
+ "description": "Enables the clipboard's `readText` API.",
2016
2047
  "default": false,
2017
2048
  "type": "boolean"
2018
- },
2019
- "theme": {
2020
- "description": "The initial window theme. Defaults to the system theme. Only implemented on Windows.",
2049
+ }
2050
+ },
2051
+ "additionalProperties": false
2052
+ },
2053
+ "SecurityConfig": {
2054
+ "description": "Security configuration.",
2055
+ "type": "object",
2056
+ "properties": {
2057
+ "csp": {
2058
+ "description": "The Content Security Policy that will be injected on all HTML files on the built application. If [`dev_csp`](#SecurityConfig.devCsp) 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 <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
2021
2059
  "anyOf": [
2022
2060
  {
2023
- "$ref": "#/definitions/Theme"
2061
+ "$ref": "#/definitions/Csp"
2024
2062
  },
2025
2063
  {
2026
2064
  "type": "null"
2027
2065
  }
2028
2066
  ]
2029
2067
  },
2030
- "title": {
2031
- "description": "The window title.",
2032
- "default": "Tauri App",
2033
- "type": "string"
2068
+ "devCsp": {
2069
+ "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 <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
2070
+ "anyOf": [
2071
+ {
2072
+ "$ref": "#/definitions/Csp"
2073
+ },
2074
+ {
2075
+ "type": "null"
2076
+ }
2077
+ ]
2034
2078
  },
2035
- "transparent": {
2036
- "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`.",
2079
+ "freezePrototype": {
2080
+ "description": "Freeze the `Object.prototype` when using the custom protocol.",
2037
2081
  "default": false,
2038
2082
  "type": "boolean"
2039
2083
  },
2040
- "url": {
2041
- "description": "The window webview URL.",
2042
- "default": "index.html",
2084
+ "dangerousDisableAssetCspModification": {
2085
+ "description": "Disables the Tauri-injected CSP sources.\n\nAt compile time, Tauri parses all the frontend assets and changes the Content-Security-Policy to only allow loading of your own scripts and styles by injecting nonce and hash sources. This stricts your CSP, which may introduce issues when using along with other flexing sources.\n\nThis configuration option allows both a boolean and a list of strings as value. A boolean instructs Tauri to disable the injection for all CSP injections, and a list of strings indicates the CSP directives that Tauri cannot inject.\n\n**WARNING:** Only disable this if you know what you are doing and have properly configured the CSP. Your application might be vulnerable to XSS attacks without this Tauri protection.",
2086
+ "default": false,
2043
2087
  "allOf": [
2044
2088
  {
2045
- "$ref": "#/definitions/WindowUrl"
2089
+ "$ref": "#/definitions/DisabledCspModificationKind"
2046
2090
  }
2047
2091
  ]
2048
- },
2049
- "visible": {
2050
- "description": "Whether the window is visible or not.",
2051
- "default": true,
2052
- "type": "boolean"
2053
- },
2054
- "width": {
2055
- "description": "The window width.",
2056
- "default": 800.0,
2057
- "type": "number",
2058
- "format": "double"
2059
- },
2060
- "x": {
2061
- "description": "The horizontal position of the window's top left corner",
2062
- "type": [
2063
- "number",
2064
- "null"
2065
- ],
2066
- "format": "double"
2067
- },
2068
- "y": {
2069
- "description": "The vertical position of the window's top left corner",
2070
- "type": [
2071
- "number",
2072
- "null"
2073
- ],
2074
- "format": "double"
2075
2092
  }
2076
2093
  },
2077
2094
  "additionalProperties": false
2078
2095
  },
2079
- "WindowUrl": {
2080
- "description": "An URL to open on a Tauri webview window.",
2096
+ "Csp": {
2097
+ "description": "A Content-Security-Policy definition. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
2098
+ "anyOf": [
2099
+ {
2100
+ "description": "The entire CSP policy in a single text string.",
2101
+ "type": "string"
2102
+ },
2103
+ {
2104
+ "description": "An object mapping a directive with its sources values as a list of strings.",
2105
+ "type": "object",
2106
+ "additionalProperties": {
2107
+ "$ref": "#/definitions/CspDirectiveSources"
2108
+ }
2109
+ }
2110
+ ]
2111
+ },
2112
+ "CspDirectiveSources": {
2113
+ "description": "A Content-Security-Policy directive source list. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>.",
2114
+ "anyOf": [
2115
+ {
2116
+ "description": "An inline list of CSP sources. Same as [`Self::List`], but concatenated with a space separator.",
2117
+ "type": "string"
2118
+ },
2119
+ {
2120
+ "description": "A list of CSP sources. The collection will be concatenated with a space separator for the CSP string.",
2121
+ "type": "array",
2122
+ "items": {
2123
+ "type": "string"
2124
+ }
2125
+ }
2126
+ ]
2127
+ },
2128
+ "DisabledCspModificationKind": {
2129
+ "description": "The possible values for the `dangerous_disable_asset_csp_modification` config option.",
2081
2130
  "anyOf": [
2082
2131
  {
2083
- "description": "An external URL.",
2084
- "type": "string",
2085
- "format": "uri"
2132
+ "description": "If `true`, disables all CSP modification. `false` is the default value and it configures Tauri to control the CSP.",
2133
+ "type": "boolean"
2086
2134
  },
2087
2135
  {
2088
- "description": "An app URL.",
2089
- "type": "string"
2136
+ "description": "Disables the given list of CSP directives modifications.",
2137
+ "type": "array",
2138
+ "items": {
2139
+ "type": "string"
2140
+ }
2090
2141
  }
2091
2142
  ]
2092
2143
  },
2093
- "WindowsConfig": {
2094
- "description": "Windows bundler configuration.",
2144
+ "UpdaterConfig": {
2145
+ "description": "The Updater configuration object.",
2095
2146
  "type": "object",
2096
2147
  "properties": {
2097
- "allowDowngrades": {
2098
- "description": "Validates a second app installation, blocking the user from installing an older version if set to `false`.\n\nFor instance, if `1.2.1` is installed, the user won't be able to install app version `1.2.0` or `1.1.5`.\n\nThe default value of this flag is `true`.",
2099
- "default": true,
2148
+ "active": {
2149
+ "description": "Whether the updater is active or not.",
2150
+ "default": false,
2100
2151
  "type": "boolean"
2101
2152
  },
2102
- "certificateThumbprint": {
2103
- "description": "Specifies the SHA1 hash of the signing certificate.",
2104
- "type": [
2105
- "string",
2106
- "null"
2107
- ]
2108
- },
2109
- "digestAlgorithm": {
2110
- "description": "Specifies the file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.",
2111
- "type": [
2112
- "string",
2113
- "null"
2114
- ]
2115
- },
2116
- "timestampUrl": {
2117
- "description": "Server to use during timestamping.",
2118
- "type": [
2119
- "string",
2120
- "null"
2121
- ]
2153
+ "dialog": {
2154
+ "description": "Display built-in dialog or use event system if disabled.",
2155
+ "default": true,
2156
+ "type": "boolean"
2122
2157
  },
2123
- "tsp": {
2124
- "description": "Whether to use Time-Stamp Protocol (TSP, a.k.a. RFC 3161) for the timestamp server. Your code signing provider may use a TSP timestamp server, like e.g. SSL.com does. If so, enable TSP by setting to true.",
2158
+ "endpoints": {
2159
+ "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.",
2125
2160
  "type": [
2126
- "boolean",
2161
+ "array",
2127
2162
  "null"
2128
- ]
2163
+ ],
2164
+ "items": {
2165
+ "$ref": "#/definitions/UpdaterEndpoint"
2166
+ }
2129
2167
  },
2130
- "webviewFixedRuntimePath": {
2131
- "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.",
2132
- "type": [
2133
- "string",
2134
- "null"
2135
- ]
2168
+ "pubkey": {
2169
+ "description": "Signature public key.",
2170
+ "default": "",
2171
+ "type": "string"
2136
2172
  },
2137
- "wix": {
2138
- "description": "Configuration for the MSI generated with WiX.",
2139
- "anyOf": [
2140
- {
2141
- "$ref": "#/definitions/WixConfig"
2142
- },
2173
+ "windows": {
2174
+ "description": "The Windows configuration for the updater.",
2175
+ "default": {
2176
+ "installMode": "passive"
2177
+ },
2178
+ "allOf": [
2143
2179
  {
2144
- "type": "null"
2180
+ "$ref": "#/definitions/UpdaterWindowsConfig"
2145
2181
  }
2146
2182
  ]
2147
2183
  }
2148
2184
  },
2149
2185
  "additionalProperties": false
2150
2186
  },
2151
- "WixConfig": {
2152
- "description": "Configuration for the MSI bundle using WiX.",
2187
+ "UpdaterEndpoint": {
2188
+ "description": "A URL to an updater server.\n\nThe URL must use the `https` scheme on production.",
2189
+ "type": "string",
2190
+ "format": "uri"
2191
+ },
2192
+ "UpdaterWindowsConfig": {
2193
+ "description": "The updater configuration for Windows.",
2153
2194
  "type": "object",
2154
2195
  "properties": {
2155
- "bannerPath": {
2156
- "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.",
2157
- "type": [
2158
- "string",
2159
- "null"
2196
+ "installMode": {
2197
+ "description": "The installation mode for the update on Windows. Defaults to `passive`.",
2198
+ "default": "passive",
2199
+ "allOf": [
2200
+ {
2201
+ "$ref": "#/definitions/WindowsUpdateInstallMode"
2202
+ }
2160
2203
  ]
2204
+ }
2205
+ },
2206
+ "additionalProperties": false
2207
+ },
2208
+ "WindowsUpdateInstallMode": {
2209
+ "description": "Install modes for the Windows update.",
2210
+ "type": "string",
2211
+ "enum": [
2212
+ "basicUi",
2213
+ "quiet",
2214
+ "passive"
2215
+ ]
2216
+ },
2217
+ "SystemTrayConfig": {
2218
+ "description": "Configuration for application system tray icon.",
2219
+ "type": "object",
2220
+ "required": [
2221
+ "iconPath"
2222
+ ],
2223
+ "properties": {
2224
+ "iconPath": {
2225
+ "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.",
2226
+ "type": "string"
2161
2227
  },
2162
- "componentGroupRefs": {
2163
- "description": "The ComponentGroup element ids you want to reference from the fragments.",
2164
- "default": [],
2165
- "type": "array",
2166
- "items": {
2167
- "type": "string"
2168
- }
2169
- },
2170
- "componentRefs": {
2171
- "description": "The Component element ids you want to reference from the fragments.",
2172
- "default": [],
2173
- "type": "array",
2174
- "items": {
2175
- "type": "string"
2176
- }
2177
- },
2178
- "dialogImagePath": {
2179
- "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.",
2228
+ "iconAsTemplate": {
2229
+ "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.",
2230
+ "default": false,
2231
+ "type": "boolean"
2232
+ }
2233
+ },
2234
+ "additionalProperties": false
2235
+ },
2236
+ "BuildConfig": {
2237
+ "description": "The Build configuration object.",
2238
+ "type": "object",
2239
+ "properties": {
2240
+ "runner": {
2241
+ "description": "The binary used to build and run the application.",
2180
2242
  "type": [
2181
2243
  "string",
2182
2244
  "null"
2183
2245
  ]
2184
2246
  },
2185
- "enableElevatedUpdateTask": {
2186
- "description": "Create an elevated update task within Windows Task Scheduler.",
2187
- "default": false,
2188
- "type": "boolean"
2189
- },
2190
- "featureGroupRefs": {
2191
- "description": "The FeatureGroup element ids you want to reference from the fragments.",
2192
- "default": [],
2193
- "type": "array",
2194
- "items": {
2195
- "type": "string"
2196
- }
2197
- },
2198
- "featureRefs": {
2199
- "description": "The Feature element ids you want to reference from the fragments.",
2200
- "default": [],
2201
- "type": "array",
2202
- "items": {
2203
- "type": "string"
2204
- }
2205
- },
2206
- "fragmentPaths": {
2207
- "description": "A list of paths to .wxs files with WiX fragments to use.",
2208
- "default": [],
2209
- "type": "array",
2210
- "items": {
2211
- "type": "string"
2212
- }
2247
+ "devPath": {
2248
+ "description": "The path to the application assets or URL to load in development.\n\nThis is usually an URL to a dev server, which serves your application assets with live reloading. Most modern JavaScript bundlers provides a way to start a dev server by default.\n\nSee [vite](https://vitejs.dev/guide/), [Webpack DevServer](https://webpack.js.org/configuration/dev-server/) and [sirv](https://github.com/lukeed/sirv) for examples on how to set up a dev server.",
2249
+ "default": "http://localhost:8080/",
2250
+ "allOf": [
2251
+ {
2252
+ "$ref": "#/definitions/AppUrl"
2253
+ }
2254
+ ]
2213
2255
  },
2214
- "language": {
2215
- "description": "The installer languages to build. See <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>.",
2216
- "default": "en-US",
2256
+ "distDir": {
2257
+ "description": "The path to the application assets or URL to load in production.\n\nWhen a path relative to the configuration file is provided, it is read recursively and all files are embedded in the application binary. Tauri then looks for an `index.html` file unless you provide a custom window URL.\n\nYou can also provide a list of paths to be embedded, which allows granular control over what files are added to the binary. In this case, all files are added to the root and you must reference it that way in your HTML files.\n\nWhen an URL is provided, the application won't have bundled assets and the application will load that URL by default.",
2258
+ "default": "../dist",
2217
2259
  "allOf": [
2218
2260
  {
2219
- "$ref": "#/definitions/WixLanguage"
2261
+ "$ref": "#/definitions/AppUrl"
2220
2262
  }
2221
2263
  ]
2222
2264
  },
2223
- "license": {
2224
- "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.",
2265
+ "beforeDevCommand": {
2266
+ "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.",
2225
2267
  "type": [
2226
2268
  "string",
2227
2269
  "null"
2228
2270
  ]
2229
2271
  },
2230
- "mergeRefs": {
2231
- "description": "The Merge element ids you want to reference from the fragments.",
2232
- "default": [],
2233
- "type": "array",
2272
+ "beforeBuildCommand": {
2273
+ "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.",
2274
+ "type": [
2275
+ "string",
2276
+ "null"
2277
+ ]
2278
+ },
2279
+ "features": {
2280
+ "description": "Features passed to `cargo` commands.",
2281
+ "type": [
2282
+ "array",
2283
+ "null"
2284
+ ],
2234
2285
  "items": {
2235
2286
  "type": "string"
2236
2287
  }
2237
2288
  },
2238
- "skipWebviewInstall": {
2239
- "description": "Disables the Webview2 runtime installation after app install.",
2289
+ "withGlobalTauri": {
2290
+ "description": "Whether we should inject the Tauri API on `window.__TAURI__` or not.",
2240
2291
  "default": false,
2241
2292
  "type": "boolean"
2242
- },
2243
- "template": {
2244
- "description": "A custom .wxs template to use.",
2245
- "type": [
2246
- "string",
2247
- "null"
2248
- ]
2249
2293
  }
2250
2294
  },
2251
2295
  "additionalProperties": false
2252
2296
  },
2253
- "WixLanguage": {
2254
- "description": "The languages to build using WiX.",
2297
+ "AppUrl": {
2298
+ "description": "Defines the URL or assets to embed in the application.",
2255
2299
  "anyOf": [
2256
2300
  {
2257
- "description": "A single language to build, without configuration.",
2258
- "type": "string"
2301
+ "description": "The app's external URL, or the path to the directory containing the app assets.",
2302
+ "allOf": [
2303
+ {
2304
+ "$ref": "#/definitions/WindowUrl"
2305
+ }
2306
+ ]
2259
2307
  },
2260
2308
  {
2261
- "description": "A list of languages to build, without configuration.",
2309
+ "description": "An array of files to embed on the app.",
2262
2310
  "type": "array",
2263
2311
  "items": {
2264
2312
  "type": "string"
2265
2313
  }
2266
- },
2267
- {
2268
- "description": "A map of languages and its configuration.",
2269
- "type": "object",
2270
- "additionalProperties": {
2271
- "$ref": "#/definitions/WixLanguageConfig"
2272
- }
2273
2314
  }
2274
2315
  ]
2275
2316
  },
2276
- "WixLanguageConfig": {
2277
- "description": "Configuration for a target language for the WiX build.",
2317
+ "PluginConfig": {
2318
+ "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.",
2278
2319
  "type": "object",
2279
- "properties": {
2280
- "localePath": {
2281
- "description": "The path to a locale (`.wxl`) file. See <https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html>.",
2282
- "type": [
2283
- "string",
2284
- "null"
2285
- ]
2286
- }
2287
- },
2288
- "additionalProperties": false
2320
+ "additionalProperties": true
2289
2321
  }
2290
2322
  }
2291
2323
  }