mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-10-25 10:33:21 +00:00
Integrate encrypted internal metadata in LiveSync
This commit is contained in:
1 parent
7b3b6ff854
commit
6c50505096
23 files changed
+1220
-61
No files matched your search
@@ -5,6 +5,7 @@ import {
|
||||
DEFAULT_SETTINGS,
|
||||
LOG_LEVEL_NOTICE,
|
||||
type ObsidianLiveSyncSettings,
|
||||
type EncryptionSettings,
|
||||
LOG_LEVEL_VERBOSE,
|
||||
} from "@vrtmrz/livesync-commonlib/compat/common/types";
|
||||
import { Menu, type ButtonComponent } from "@/deps.ts";
|
||||
@@ -31,11 +32,13 @@ import {
|
||||
import { ConnectionStringParser } from "@vrtmrz/livesync-commonlib/compat/common/ConnectionString";
|
||||
import type { RemoteConfigurationResult } from "@vrtmrz/livesync-commonlib/compat/common/ConnectionString";
|
||||
import SetupRemote from "@/modules/features/SetupWizard/dialogs/SetupRemote.svelte";
|
||||
import SetupRemoteE2EE from "@/modules/features/SetupWizard/dialogs/SetupRemoteE2EE.svelte";
|
||||
import SetupRemoteCouchDB from "@/modules/features/SetupWizard/dialogs/SetupRemoteCouchDB.svelte";
|
||||
import SetupRemoteBucket from "@/modules/features/SetupWizard/dialogs/SetupRemoteBucket.svelte";
|
||||
import type {
|
||||
SetupRemoteCouchDBInitialData,
|
||||
SetupRemoteCouchDBResultType,
|
||||
SetupRemoteE2EEResultType,
|
||||
} from "@/modules/features/SetupWizard/dialogs/setupDialogTypes.ts";
|
||||
import { syncActivatedRemoteSettings } from "./remoteConfigBuffer.ts";
|
||||
|
||||
@@ -116,7 +119,35 @@ export function paneRemoteConfig(
|
||||
.onClick(async () => {
|
||||
const setupManager = this.core.getModule(SetupManager);
|
||||
const originalSettings = getSettingsFromEditingSettings(this.editingSettings);
|
||||
await setupManager.onlyE2EEConfiguration(UserMode.Update, originalSettings);
|
||||
const e2eeConf = await setupManager.dialogManager.openWithExplicitCancel<
|
||||
SetupRemoteE2EEResultType,
|
||||
EncryptionSettings
|
||||
>(SetupRemoteE2EE, originalSettings);
|
||||
if (e2eeConf === "cancelled") {
|
||||
return;
|
||||
}
|
||||
const onlyInternalMetadataPreferenceChanged =
|
||||
originalSettings.encryptInternalMetadata !== e2eeConf.encryptInternalMetadata &&
|
||||
originalSettings.encrypt === e2eeConf.encrypt &&
|
||||
originalSettings.passphrase === e2eeConf.passphrase &&
|
||||
originalSettings.E2EEAlgorithm === e2eeConf.E2EEAlgorithm &&
|
||||
originalSettings.usePathObfuscation === e2eeConf.usePathObfuscation;
|
||||
if (onlyInternalMetadataPreferenceChanged) {
|
||||
await this.services.setting.applyPartial(
|
||||
{ encryptInternalMetadata: e2eeConf.encryptInternalMetadata },
|
||||
true
|
||||
);
|
||||
this.editingSettings.encryptInternalMetadata = e2eeConf.encryptInternalMetadata;
|
||||
if (this.initialSettings) {
|
||||
this.initialSettings.encryptInternalMetadata = e2eeConf.encryptInternalMetadata;
|
||||
}
|
||||
this.requestUpdate();
|
||||
} else {
|
||||
await setupManager.onConfirmApplySettingsFromWizard(
|
||||
{ ...originalSettings, ...e2eeConf },
|
||||
UserMode.Update
|
||||
);
|
||||
}
|
||||
updateE2EESummary();
|
||||
})
|
||||
.setButtonText("Configure")
|
||||
@@ -243,6 +274,7 @@ export function paneRemoteConfig(
|
||||
...DEFAULT_SETTINGS,
|
||||
encrypt: this.editingSettings.encrypt,
|
||||
usePathObfuscation: this.editingSettings.usePathObfuscation,
|
||||
encryptInternalMetadata: this.editingSettings.encryptInternalMetadata,
|
||||
passphrase: this.editingSettings.passphrase,
|
||||
configPassphraseStore: this.editingSettings.configPassphraseStore,
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user