# tauri-plugin-configurate ## Docs - [Configurate Class — Complete TypeScript API Reference](https://configurate.crystaworld.dev/api/configurate-class.md): Complete reference for the Configurate class: constructor, CRUD methods, patch, reset, exists, list, export, import, validate, watch, and batching. - [Storage Provider Functions: JSON, YAML, TOML, Binary](https://configurate.crystaworld.dev/api/providers.md): Reference for JsonProvider(), YmlProvider(), TomlProvider(), and BinaryProvider() — factory functions that set the storage format for your config files. - [Result Types: LockedConfig, UnlockedConfig, BatchRunResult](https://configurate.crystaworld.dev/api/result-types.md): Reference for the typed result objects returned by Configurate methods: LockedConfig, UnlockedConfig, PatchedConfig, and BatchRunResult. - [Rust Plugin Builder: Configure tauri-plugin-configurate](https://configurate.crystaworld.dev/api/rust-builder.md): Reference for the tauri-plugin-configurate Rust Builder API: customize read byte limits, BaseDirectory allowlists, and register the plugin with Tauri. - [Tauri Capability Permissions Reference for configurate](https://configurate.crystaworld.dev/api/rust-permissions.md): Reference for tauri-plugin-configurate Tauri capability permissions: the 15-command default set, allow-unlock for keyring access, and deny-* identifiers. - [Schema Definition Functions: defineConfig, keyring, optional](https://configurate.crystaworld.dev/api/schema-functions.md): Reference for defineConfig(), keyring(), and optional() — the three functions for declaring type-safe configuration schemas in tauri-plugin-configurate. - [Utility Functions: configDiff and MigrationStep Reference](https://configurate.crystaworld.dev/api/utility-functions.md): API reference for configDiff(), which computes structural diffs between config objects, and MigrationStep, for defining schema version migrations. - [OS Keyring Secret Storage in tauri-plugin-configurate](https://configurate.crystaworld.dev/concepts/keyring.md): Mark schema fields with keyring() to store sensitive values like passwords and API keys in the platform keychain instead of plain config files. - [Tauri Capability Permissions for tauri-plugin-configurate](https://configurate.crystaworld.dev/concepts/permissions.md): Grant Tauri capability permissions for tauri-plugin-configurate. The default set covers CRUD and file watching; keyring unlock needs a separate permission. - [Storage Providers: JSON, YAML, TOML, and Encrypted Binary](https://configurate.crystaworld.dev/concepts/providers.md): Choose how tauri-plugin-configurate stores your config files: human-readable JSON, YAML, or TOML, or encrypted binary using XChaCha20-Poly1305. - [Defining Config Schemas with Full Type Safety in Tauri](https://configurate.crystaworld.dev/concepts/schema.md): Learn how defineConfig(), keyring(), and optional() build a type-inferred config schema for Tauri apps, covering primitives, nested objects, and arrays. - [Load and Save Multiple Configs in a Single IPC Call](https://configurate.crystaworld.dev/guides/batch-operations.md): Use Configurate.loadAll(), saveAll(), and patchAll() to operate on multiple configuration files in one IPC round-trip for better performance. - [Create, Load, Save, and Delete Configuration Files](https://configurate.crystaworld.dev/guides/crud.md): Perform full create, read, update, and delete operations on configuration files using tauri-plugin-configurate's type-safe, keyring-aware API. - [Encrypt Configuration Files with XChaCha20-Poly1305](https://configurate.crystaworld.dev/guides/encryption.md): Use BinaryProvider with an optional encryption key to protect config files at rest using XChaCha20-Poly1305, SHA-256, or Argon2id. - [Export and Import Configuration Data Across Formats](https://configurate.crystaworld.dev/guides/export-import.md): Convert your stored configuration to JSON, YAML, or TOML strings for backup or transfer using exportAs() and importFrom() in tauri-plugin-configurate. - [Watch Config Files for External and Internal Changes](https://configurate.crystaworld.dev/guides/file-watching.md): Use watchExternal() and onChange() to react to config changes made by external processes or your own application, and clean up listeners when done. - [Schema Versioning and Automatic Configuration Migrations](https://configurate.crystaworld.dev/guides/migrations.md): Version your configuration schema and define migration steps that automatically transform stored data when your app upgrades to a new schema version. - [Partially Update Your Config with Deep-Merge Patching](https://configurate.crystaworld.dev/guides/patching.md): Use config.patch() to update only specific keys in your config without overwriting the rest, with support for keyring fields and automatic creation. - [Security Best Practices for tauri-plugin-configurate](https://configurate.crystaworld.dev/guides/security.md): Learn the security model of tauri-plugin-configurate: directory restrictions, keyring usage, encryption key handling, YAML safety, and production tips. - [Install tauri-plugin-configurate in Your Tauri App](https://configurate.crystaworld.dev/installation.md): Add the Rust crate and npm package to your Tauri v2 project, register the plugin, and configure Tauri permissions to start managing configuration. - [tauri-plugin-configurate Plugin Overview for Tauri v2](https://configurate.crystaworld.dev/introduction.md): Overview of tauri-plugin-configurate: schema-driven, type-safe configuration for Tauri v2 with multi-format storage and native OS keyring support. - [Get Started with tauri-plugin-configurate in 5 Minutes](https://configurate.crystaworld.dev/quickstart.md): Define a type-safe config schema, store and load application settings with JSON storage, and optionally protect sensitive fields with the OS keyring.