From 0c9ee34a827acc02b22ac9588b9ecbc0cfc010e6 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Wed, 27 May 2026 01:17:23 +0800 Subject: [PATCH] feat: add WebDAV cloud sync with encrypted secrets support Add WebDAV-based settings sync for desktop app, including connection configuration, editor settings, and optional encrypted secrets sync. Also persist WebDAV remember-password preference across sessions. --- Cargo.lock | 4 + .../editor/EditorSettingsDialog.vue | 331 +++++++++- apps/desktop/src/i18n/locales/en.ts | 29 + apps/desktop/src/i18n/locales/es.ts | 42 ++ apps/desktop/src/i18n/locales/zh-CN.ts | 25 + apps/desktop/src/lib/api.ts | 10 + apps/desktop/src/lib/http.ts | 59 ++ apps/desktop/src/lib/tauri.ts | 59 ++ crates/dbx-core/Cargo.toml | 3 + crates/dbx-core/src/cloud_sync.rs | 565 ++++++++++++++++++ crates/dbx-core/src/lib.rs | 1 + crates/dbx-core/src/storage.rs | 123 ++++ src-tauri/src/commands/cloud_sync.rs | 85 +++ src-tauri/src/commands/mod.rs | 1 + src-tauri/src/lib.rs | 6 + 15 files changed, 1328 insertions(+), 15 deletions(-) create mode 100644 crates/dbx-core/src/cloud_sync.rs create mode 100644 src-tauri/src/commands/cloud_sync.rs diff --git a/Cargo.lock b/Cargo.lock index 3d3706fc81..7078554150 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1545,6 +1545,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array 0.14.7", + "rand_core 0.6.4", "typenum", ] @@ -1833,7 +1834,9 @@ dependencies = [ name = "dbx-core" version = "0.1.0" dependencies = [ + "aes-gcm 0.10.3", "anyhow", + "argon2", "async-trait", "base64 0.22.1", "bytes", @@ -1860,6 +1863,7 @@ dependencies = [ "rustls 0.23.40", "serde", "serde_json", + "sha2 0.10.9", "sqlparser", "tiberius", "tokio", diff --git a/apps/desktop/src/components/editor/EditorSettingsDialog.vue b/apps/desktop/src/components/editor/EditorSettingsDialog.vue index 25f50e8272..e48e66ae04 100644 --- a/apps/desktop/src/components/editor/EditorSettingsDialog.vue +++ b/apps/desktop/src/components/editor/EditorSettingsDialog.vue @@ -1,8 +1,20 @@