docs: simplify system documentation
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
| Что считается кэшем и когда прежние данные теряют право на повторное использование? | [Свежесть данных](cross-cutting/data-freshness.md) |
|
||||
| Как обрабатываются ошибки и ожидание? | [HTTP API и ошибки](http-api.md), [состояния интерфейса](cross-cutting/ui-resilience.md) |
|
||||
| Как связать ошибку с обработкой запроса? | [Наблюдаемость](http-api.md#наблюдаемость) |
|
||||
| Как устроено подтверждённое локальное окружение? | [Container](containers.md#представление-container), [локальная диагностика](../development/local-workspace.md) |
|
||||
| Как устроено подтверждённое локальное окружение? | [Container](containers.md#представление-container), [качество и ограничения](containers.md#качество-и-ограничения) |
|
||||
| Что означают предметные термины? | [Глоссарий](../glossary.md) |
|
||||
|
||||
Эта карта покрывает вопросы архитектуры там, где о них есть подтверждённое
|
||||
|
||||
@@ -104,6 +104,20 @@ credentials не являются сохраняемым представлен
|
||||
[модель свежести](cross-cutting/data-freshness.md) отделяет это от хранения
|
||||
учётных данных.
|
||||
|
||||
## Сохранение и восстановление данных
|
||||
|
||||
Резервная копия SQLite должна быть согласованной: для работающей базы
|
||||
используется SQLite backup API с учётом WAL. Несогласованное копирование
|
||||
файлов базы и WAL не сохраняет целостный снимок. Восстановление проверяется
|
||||
на отдельной копии. Ключ шифрования подключения хранится отдельно от базы;
|
||||
его потеря делает сохранённый T-Bank token нечитаемым.
|
||||
|
||||
Откат приложения требует совместимости предыдущей версии с сохранённой
|
||||
схемой. Расширенная банковскими таблицами схема сохраняет пользователей,
|
||||
сессии и подключения. Возврат старого backup поверх новой истории удалил бы
|
||||
введённые банковские операции; откат приложения не равнозначен откату данных.
|
||||
Совместимость произвольных будущих версий этим не гарантируется.
|
||||
|
||||
## Стратегия решения и её основания
|
||||
|
||||
Локальная база и Prisma дают типизированный доступ к локальному состоянию
|
||||
@@ -137,8 +151,10 @@ access token и вращаемый refresh token. [Политика query-кэш
|
||||
и [HTTP API](http-api.md#error-contract).
|
||||
|
||||
Подтверждённая топология — локальная SPA и локальный API с файлом SQLite.
|
||||
Origin браузера, адрес API и cookie policy должны быть согласованы; условия
|
||||
и диагностика описаны в [локальном окружении](../development/local-workspace.md).
|
||||
Origin браузера, адрес API и cookie policy должны быть согласованы.
|
||||
`localhost` и `127.0.0.1` задают разные browser-границы для cookie и CORS.
|
||||
Локальный HTTP поддерживается в development-режиме backend; в остальных
|
||||
режимах refresh-cookie имеет Secure flag и требует защищённого соединения.
|
||||
Наличие локального запуска не задаёт production-топологию или гарантии SLA.
|
||||
|
||||
Кэши и лимитер T-Bank действуют на экземпляр backend. Ротация ключа шифрования
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
|
||||
Backend генерирует OpenAPI из собственного публичного API. Frontend использует
|
||||
предоставленный OpenAPI snapshot как актуальный вход и локально генерирует
|
||||
типизированный клиент. Направление описано в
|
||||
[OpenAPI contract flow](../development/runtime-openapi-verification.md).
|
||||
типизированный клиент. Backend владеет контрактом, а подготовка и доставка
|
||||
схемы находятся вне frontend. Это разделение принято в
|
||||
[ADR 002](../adr/002-nest-generated-openapi-contract.md) и
|
||||
[ADR 014](../adr/014-trusted-openapi-input.md).
|
||||
API имеет prefix `/api/v1`; Swagger публикуется для локальной разработки по
|
||||
environment policy, а не используется frontend в runtime.
|
||||
|
||||
@@ -54,15 +56,6 @@ T-Bank token failure и временная недоступность имеют
|
||||
[Connection API](../integrations/tbank.md#состояние-и-ошибки). Raw upstream/Prisma errors
|
||||
и secrets не передаются frontend.
|
||||
|
||||
## Граница доказательства
|
||||
|
||||
OpenAPI snapshot задаёт frontend transport types, но сам по себе не доказывает
|
||||
результат каждого запроса. Безопасная обработка неожиданной ошибки проверяется
|
||||
отдельно. Валидация, доступ, статусы и cookie требуют проверки полного
|
||||
HTTP-потока; атомарность хранения — проверки с изолированной реальной базой.
|
||||
Известное ограничение сквозных проверок описано в
|
||||
[проверке backend](../development/verification.md).
|
||||
|
||||
## Наблюдаемость
|
||||
|
||||
Backend пишет структурированные JSON-события в stdout через Pino. Обработка
|
||||
|
||||
Reference in New Issue
Block a user