docs: describe manual bank card accounting
Document exact balances, corrections, archive behavior and safe migration and rollback. Update product navigation and UI catalog.
This commit is contained in:
@@ -28,8 +28,10 @@ T-Bank token вводится пользователем через интерф
|
||||
**Известное ограничение:** ранее была зафиксирована ошибка `Schema engine error`
|
||||
на новой временной SQLite-базе до создания схемы. Условия проверки и пересмотра —
|
||||
в [ограничении сквозной проверки](verification.md#известное-ограничение-сквозной-проверки).
|
||||
Пользовательская база для такого воспроизведения не нужна; полный первый запуск
|
||||
на чистой базе этим свидетельством не подтверждён.
|
||||
На Node 22.21.0 / Prisma 7.9.1 подтверждено три последовательных применения
|
||||
миграций к новым временным базам с `RUST_LOG=info` вне sandbox. Без этой
|
||||
переменной ошибка воспроизводится. Пользовательская база для воспроизведения
|
||||
не нужна; успешная миграция сама по себе не подтверждает полный первый запуск.
|
||||
|
||||
В development доступна [локальная Swagger UI](http://localhost:3000/api/docs)
|
||||
при стандартном порте API. Она показывает контракт, но не доказывает доступность
|
||||
@@ -57,8 +59,36 @@ refresh-cookie получает Secure flag и требует защищённо
|
||||
4. «Доходы» показывают полученные выплаты, «События» — будущие.
|
||||
5. При выходе локальная сессия и её клиентский кэш очищаются.
|
||||
|
||||
Без T-Bank token доступны регистрация, вход и состояние отсутствующего
|
||||
подключения. Это не подтверждает работу финансовых сценариев.
|
||||
Без T-Bank token доступны регистрация, вход, состояние отсутствующего
|
||||
подключения и [ручной банковский учёт](../domains/cards/overview.md).
|
||||
Банковский сценарий не подтверждает доступность инвестиционных поставщиков.
|
||||
|
||||
## Сохранение данных и откат
|
||||
|
||||
Перед обновлением сохраняется согласованный SQLite backup; ключ шифрования
|
||||
T-Bank хранится отдельно. Для работающей базы используется SQLite backup API,
|
||||
который учитывает WAL. Несогласованное копирование файлов базы и WAL не является
|
||||
резервной копией. Восстановление сначала проверяется на отдельном файле.
|
||||
|
||||
Банковская миграция добавляет таблицы, сохраняя User, Session и TbankConnection.
|
||||
При необходимости отката приложения сначала прекращаются новые записи и
|
||||
сохраняется актуальный снимок. Затем возвращается совместимая предыдущая версия
|
||||
backend при сохранении расширенной схемы. Старый backup не восстанавливается
|
||||
поверх новой истории: это удалило бы введённые банковские операции.
|
||||
|
||||
Совместимость проверена с исходной версией backend
|
||||
`8ec172f48eefa2237dc0c16919fbb2e726b39a65`: она выполняла вход с расширенной
|
||||
схемой, а новая версия после возврата читала прежние карты и операции.
|
||||
Отдельно проверены перезапуск, служебные данные защиты повторов и приложение
|
||||
на восстановленной SQLite-копии. Это подтверждение конкретной пары версий,
|
||||
а не гарантия совместимости любого будущего изменения схемы.
|
||||
|
||||
Проверка воспроизводится через
|
||||
[процессный сценарий](../../backend/test/bank-cards-durability.cjs)
|
||||
с каталогом отдельно собранного baseline: после активации backend `.nvmrc`
|
||||
выполнить `node test/bank-cards-durability.cjs <baseline-directory>`.
|
||||
Сценарий создаёт собственные временные базы и вымышленные данные. Migrations
|
||||
и HTTP/DB-ограничения описаны в [проверке системы](verification.md).
|
||||
|
||||
## Если запуск или сценарий не работает
|
||||
|
||||
|
||||
Reference in New Issue
Block a user