Skip to main content
Tauri v2 uses a capability system to control which plugin commands your frontend is allowed to call. Each command exposed by tauri-plugin-configurate has a corresponding allow-* permission identifier. You list the permissions you want to grant inside a capability file (typically src-tauri/capabilities/default.json), and Tauri enforces them at the IPC boundary — a command that is not listed will be denied before it reaches Rust. This page covers every permission identifier the plugin defines and explains when to use each one.

configurate:default

The configurate:default permission set bundles every general-purpose command the plugin exposes. It is the right starting point for most applications. Add it to your capability file like this:
{
  "permissions": ["configurate:default"]
}
The following individual permissions are included in configurate:default:
Permission identifierCommandDescription
configurate:allow-createcreateCreate a new config file
configurate:allow-loadloadLoad an existing config file
configurate:allow-savesaveSave (overwrite) a config file
configurate:allow-patchpatchPartially update a config file
configurate:allow-deletedeleteDelete a config file
configurate:allow-existsexistsCheck whether a config file exists
configurate:allow-load-allload_allBatch-load multiple config files
configurate:allow-save-allsave_allBatch-save multiple config files
configurate:allow-patch-allpatch_allBatch-patch multiple config files
configurate:allow-watch-filewatch_fileWatch a config file for changes
configurate:allow-unwatch-fileunwatch_fileStop watching a config file
configurate:allow-list-configslist_configsList config files in a directory
configurate:allow-resetresetDelete and re-create a config file
configurate:allow-export-configexport_configExport a config to a format string
configurate:allow-import-configimport_configImport a config from a format string
Grant only the permissions your application actually uses. If your app never watches files, omitting configurate:allow-watch-file and configurate:allow-unwatch-file reduces the surface area available to a compromised renderer process.

configurate:allow-unlock

The allow-unlock permission gates the unlock command, which is the only command that reads keyring secrets and inlines them into config data. It is intentionally excluded from configurate:default and must be granted separately.
{
  "permissions": [
    "configurate:default",
    "configurate:allow-unlock"
  ]
}
You need this permission whenever your JavaScript code calls .unlock() on a Configurate instance or uses loadAll().unlock(). Without it, those calls are denied at the IPC layer before any keyring access occurs.
configurate:allow-unlock is deliberately kept out of the default permission set as a security measure. Granting keyring access is a meaningful decision — an application that never uses the keyring should not expose this command at all. Always add configurate:allow-unlock explicitly and only in capability files for windows that genuinely require it.

Granting individual permissions

Instead of using the configurate:default bundle, you can list only the specific permissions your application needs. This is useful when you want a tightly scoped capability file for a particular window or context:
{
  "permissions": [
    "configurate:allow-load",
    "configurate:allow-save"
  ]
}

Full permission identifier reference

The table below lists every allow-* and deny-* identifier the plugin exposes. The deny-* variants let you explicitly block a command even when a broader permission set might otherwise include it — useful for fine-grained per-window capability rules.
Allow identifierDeny identifierCommand
configurate:allow-createconfigurate:deny-createcreate
configurate:allow-loadconfigurate:deny-loadload
configurate:allow-saveconfigurate:deny-savesave
configurate:allow-patchconfigurate:deny-patchpatch
configurate:allow-deleteconfigurate:deny-deletedelete
configurate:allow-existsconfigurate:deny-existsexists
configurate:allow-load-allconfigurate:deny-load-allload_all
configurate:allow-save-allconfigurate:deny-save-allsave_all
configurate:allow-patch-allconfigurate:deny-patch-allpatch_all
configurate:allow-unlockconfigurate:deny-unlockunlock
configurate:allow-watch-fileconfigurate:deny-watch-filewatch_file
configurate:allow-unwatch-fileconfigurate:deny-unwatch-fileunwatch_file
configurate:allow-list-configsconfigurate:deny-list-configslist_configs
configurate:allow-resetconfigurate:deny-resetreset
configurate:allow-export-configconfigurate:deny-export-configexport_config
configurate:allow-import-configconfigurate:deny-import-configimport_config