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).
|
||||
|
||||
## Если запуск или сценарий не работает
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Storybook 10.6.0 показывает реальные представлени
|
||||
|
||||
## Компоненты и работа с примерами
|
||||
|
||||
Каталог включает 10 групп и 41 пример:
|
||||
Каталог включает 12 групп и 50 примеров:
|
||||
|
||||
| Группа | Что показывает |
|
||||
| --- | --- |
|
||||
@@ -26,6 +26,8 @@ Storybook 10.6.0 показывает реальные представлени
|
||||
| Обновление портфеля | Сохранённые суммы при обновлении и ошибке, локальную повторную попытку |
|
||||
| Загрузка страницы счёта | Контур ожидаемых заголовка, сводки и строк |
|
||||
| Структура портфеля | Валюты и типы активов, только деньги, пустую и неполную оценку, неизвестные и отрицательные значения |
|
||||
| Сводка банковских карт | Расходы и возвраты, отрицательный месяц возврата, известные нули, загрузку, ошибку, сохранённые суммы и длинные точные итоги |
|
||||
| Поля банковской карты | Независимую рублёвую карту и недоступные финансовые поля архива |
|
||||
|
||||
Каталог не перечисляет все элементы библиотеки или приложения. Отсутствие
|
||||
представления в витрине не означает его отсутствия в продукте. Основы показывают
|
||||
|
||||
@@ -39,10 +39,22 @@ SQLite-базе завершалось `Schema engine error` до запуска
|
||||
Предыдущее описание локальной проверки от 12 сентября 2026 года также отмечало
|
||||
ошибку на временной базе без обращения к пользовательской базе.
|
||||
|
||||
Успех unit-проверок и OpenAPI не закрывает эту границу. Принятое условие пересмотра —
|
||||
Успех unit-проверок и OpenAPI не закрывает эту границу. Условие проверки —
|
||||
стабильная версия Prisma с тремя последовательными успешными применениями
|
||||
миграций на новых базах под Node 22. Условия безопасного локального запуска и
|
||||
сохранения данных — в [локальном окружении](local-workspace.md).
|
||||
миграций на новых базах под Node 22.
|
||||
|
||||
При реализации ручных карт Prisma 7.9.1 на Node 22.21.0 трижды подряд применил
|
||||
существующие migrations к новым временным базам командой
|
||||
`RUST_LOG=info DATABASE_URL=file:<новая-временная-база> npx prisma migrate deploy`
|
||||
вне sandbox. Без `RUST_LOG=info` пустой `Schema engine error` воспроизводился
|
||||
и вне sandbox. Поэтому подтверждён именно этот способ запуска; исправление
|
||||
обычного запуска или причина зависимости от журналирования не установлены.
|
||||
Он использует штатную историю migrations без `db push`, reset или ручного SQL-обхода.
|
||||
Результат исходной проверки сохранён в
|
||||
[Tasks ручных карт](../../specs/openspec/changes/add-manual-bank-cards/tasks.md).
|
||||
Применение новой миграции, DB-инварианты и HTTP-сценарии требуют своих проверок.
|
||||
Условия безопасного локального запуска и сохранения данных —
|
||||
в [локальном окружении](local-workspace.md).
|
||||
|
||||
## Где выполнять проверки
|
||||
|
||||
|
||||
Reference in New Issue
Block a user