Files
bare/docs/decisions/010-export-import.md
T
ClaudeandClaude Fable 5 b9bf4ea04e Парольная политика (ADR-013) и привязка экспорта к аккаунту (ADR-014)
ADR-013: PBKDF2-HMAC-SHA256 ≥600k итераций (цель 1M), параметры KDF
версионируются рядом с блобом; пароль от 12 символов, длина важнее
состава. ADR-014: парольная фраза экспорта отменена, ключ экспорта —
HKDF от 32-байтового секрета аккаунта из ключевого блоба; архив .bare
криптографически бесполезен вне аккаунта-владельца. Перекрёстно
обновлены ADR-006, ADR-010, architecture, threat-model; в открытые
вопросы добавлен серверный «перец» для блоба.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SW4ZXtKn5NjX8NH3Lhm2ND
2026-08-20 09:41:33 +00:00

18 lines
1.6 KiB
Markdown

# ADR-010: Перенос истории — только ручной экспорт/импорт
Частично заменён [ADR-014](014-export-account-binding.md): парольная фраза экспорта отменена, ключ экспорта выводится из секрета аккаунта. Принцип «перенос — только ручной экспорт/импорт» в силе.
## Контекст
История живёт на устройстве (ADR-009), но людям нужны перенос на новое устройство и склейка истории с нескольких. Облачная синхронизация сделала бы сервер архивом — non-goal.
## Решение
Экспорт: вся локальная история сериализуется, шифруется отдельной парольной фразой (запрашивается в момент экспорта) и сохраняется одним файлом `.bare`. Импорт: файл плюс фраза, идемпотентный merge в IndexedDB по messageId. Это единственный механизм переноса истории между устройствами.
## Следствия
- Повторный импорт и склейка истории с двух устройств не создают дублей.
- Файл `.bare` самодостаточен и не зависит от пароля аккаунта.
- Перенос — явное действие пользователя. Автоматики не будет. Осознанно.