Skip to content

Stronghold Service

Файл: backend/src/services/stronghold.rs

Сервис интеграции с IOTA Stronghold — специализированным хранилищем секретов с защитой от side-channel атак. Управляет инициализацией, сохранением/загрузкой состояния и операциями с vault Stronghold.

Эндпоинты

МетодПутьФункцияОписание
POST/api/stronghold/initinit_stronghold_svcИнициализировать Stronghold
GET/api/stronghold/initializedis_stronghold_initialized_svcПроверить инициализацию
GET/api/stronghold/existsstronghold_vault_exists_svcПроверить наличие vault-файла
GET/api/stronghold/pathget_stronghold_vault_path_svcПуть к vault-файлу
POST/api/stronghold/savesave_state_to_stronghold_svcСохранить состояние (legacy)
POST/api/stronghold/loadload_state_from_stronghold_svcЗагрузить состояние (legacy)
POST/api/stronghold/clearclear_stronghold_svcОчистить все данные
POST/api/stronghold/deletedelete_stronghold_vault_svcУдалить vault-файл
POST/api/stronghold/passwordchange_stronghold_password_svcСменить пароль
POST/api/stronghold/save-securesave_state_to_stronghold_secure_svcСохранить (Store + Vault)
GET/api/stronghold/secrets-infoget_vault_secrets_info_svcИнформация о секретах

Зависимости

  • SharedState — глобальное состояние приложения (содержит StrongholdManager)
  • StrongholdManager — обёртка над IOTA Stronghold

init_stronghold_svc

POST /api/stronghold/init

Инициализирует Stronghold с указанным путём к snapshot-файлу и паролем.

Параметры

ИмяТипОписание
snapshot_pathStringПуть к snapshot-файлу
passwordStringПароль для шифрования

Логика

  1. Создаёт PathBuf из snapshot_path
  2. Вызывает state.init_stronghold(path) — создаёт StrongholdManager
  3. Вызывает manager.init(password) — создаёт/загружает snapshot
  4. Записывает метрики
plantuml Diagram

is_stronghold_initialized_svc / stronghold_vault_exists_svc

Проверки состояния Stronghold: инициализирован ли менеджер, существует ли файл vault.

plantuml Diagram

save_state_to_stronghold_svc / load_state_from_stronghold_svc

Legacy-режим сохранения/загрузки состояния в Stronghold Store.

plantuml Diagram

save_state_to_stronghold_secure_svc

POST /api/stronghold/save-secure

Сохраняет состояние в dual-режиме: Stronghold Store + Vault для максимальной защиты.

plantuml Diagram

clear_stronghold_svc

POST /api/stronghold/clear

Очищает все данные в Stronghold (требует пароль).

plantuml Diagram

delete_stronghold_vault_svc

POST /api/stronghold/delete

Удаляет физический файл Stronghold vault и сбрасывает менеджер в None.

plantuml Diagram

change_stronghold_password_svc

POST /api/stronghold/password

Меняет пароль Stronghold: загружает с старым паролем, сохраняет с новым.

Параметры

ИмяТипОписание
old_passwordStringТекущий пароль
new_passwordStringНовый пароль
plantuml Diagram

get_vault_secrets_info_svc

GET /api/stronghold/secrets-info

Возвращает мета-информацию о секретах (например, has_s3_credentials).

plantuml Diagram