Улучшение соответсвия

This commit is contained in:
2026-05-28 17:23:54 +03:00
parent 5c40687011
commit 0c15c7b786
39 changed files with 161 additions and 204 deletions

View File

@@ -1,8 +1,8 @@
@startuml fig_02_vault_lifecycle
scale 3
title
Wallenc — пользовательский поток: жизненный цикл vault
и точки постановки в очередь синхронизации (проект)
Wallenc — жизненный цикл storage (IStorage)
внутри IVault; журнал синхронизации
end title
skinparam defaultFontName "DejaVu Sans"
@@ -13,45 +13,41 @@ skinparam state {
skinparam noteBackgroundColor #E3F2FD
skinparam noteBorderColor #1565C0
state "(Б) Список vault" as List
state "(Б) Список storage\n(LocalVault или VaultBrowser)" as List
List --> Create : Создать vault
Create --> List : Vault создан
List --> Create : Создать storage\n(FAB)
Create --> List : Storage создан
List --> EncryptDlg : Включить шифрование
EncryptDlg --> Encrypting : Подтверждение, мастер-ключ
List --> EncryptDlg : Включить шифрование storage
EncryptDlg --> Encrypting : Подтверждение, ключ
state Encrypting {
state "Шифрование данных + запись метаданных" as EncWork
state "Шифрование + метаданные Room" as EncWork
}
Encrypting --> List : Готово
note right of Encrypting
После успешной записи **коммита**
в историю Storage (проект):
UUID storage → **очередь синхронизации**
в Room (для таймера)
Запись в журнал sync (проект):
UUID **storage** → очередь
группы DbStorageSyncGroup
end note
List --> OpenDlg : Открыть зашифрованный
List --> OpenDlg : Открыть зашифрованный storage
OpenDlg --> Opened : Ключ верный
OpenDlg --> List : Отмена / неверный ключ
state Opened {
state "Просмотр / работа с содержимым" as Browse
state "Файлы, секреты, 2FA\n(StorageHome)" as Browse
}
Opened --> List : Закрыть vault / блокировка
Opened --> List : Закрыть / заблокировать storage
List --> RenameDel : Переименовать / удалить
List --> RenameDel : Переименовать / удалить storage
RenameDel --> List : Подтверждение
note bottom of List
**Синхронизация (проект):** любое изменение,
порождающее новый **коммит** в Storage,
добавляет storage UUID в таблицу очереди;
**SyncService** по таймеру обрабатывает очередь,
сравнивает истории коммитов с удалённой копией
и приводит зашифрованное содержимое
к одному состоянию (без передачи ключей).
**Синхронизация:** изменения в **storage**
пишутся в журнал; StorageSyncEngine
согласует группы storage по ревизиям
(зашифрованное содержимое, без ключей).
end note
@enduml