58 lines
2.0 KiB
Plaintext
58 lines
2.0 KiB
Plaintext
@startuml wallenc_02_vault_lifecycle
|
||
scale 3
|
||
title
|
||
Wallenc — пользовательский поток: жизненный цикл vault
|
||
и точки постановки в очередь синхронизации (проект)
|
||
end title
|
||
|
||
skinparam defaultFontName "DejaVu Sans"
|
||
skinparam state {
|
||
BackgroundColor #F8F8F8
|
||
BorderColor #333333
|
||
}
|
||
skinparam noteBackgroundColor #E3F2FD
|
||
skinparam noteBorderColor #1565C0
|
||
|
||
state "(Б) Список vault" as List
|
||
|
||
List --> Create : Создать vault
|
||
Create --> List : Vault создан
|
||
|
||
List --> EncryptDlg : Включить шифрование
|
||
EncryptDlg --> Encrypting : Подтверждение, мастер-ключ
|
||
state Encrypting {
|
||
state "Шифрование данных + запись метаданных" as EncWork
|
||
}
|
||
Encrypting --> List : Готово
|
||
|
||
note right of Encrypting
|
||
После успешной записи **коммита**
|
||
в историю Storage (проект):
|
||
UUID storage → **очередь синхронизации**
|
||
в Room (для таймера)
|
||
end note
|
||
|
||
List --> OpenDlg : Открыть зашифрованный
|
||
OpenDlg --> Opened : Ключ верный
|
||
OpenDlg --> List : Отмена / неверный ключ
|
||
|
||
state Opened {
|
||
state "Просмотр / работа с содержимым" as Browse
|
||
}
|
||
Opened --> List : Закрыть vault / блокировка
|
||
|
||
List --> RenameDel : Переименовать / удалить
|
||
RenameDel --> List : Подтверждение
|
||
|
||
note bottom of List
|
||
**Синхронизация (проект):** любое изменение,
|
||
порождающее новый **коммит** в Storage,
|
||
добавляет storage UUID в таблицу очереди;
|
||
**SyncService** по таймеру обрабатывает очередь,
|
||
сравнивает истории коммитов с удалённой копией
|
||
и приводит зашифрованное содержимое
|
||
к одному состоянию (без передачи ключей).
|
||
end note
|
||
|
||
@enduml
|