# Обзор системы WealthLedger — локальное приложение для просмотра инвестиционных данных через безопасное server-side подключение к T-Bank Invest. ## Поставленные возможности - [Аутентификация](../features/authentication.md): access/refresh-сессии и защищённые маршруты. - [Подключение T-Bank](../features/tbank-connection.md): один зашифрованный token на User. - [Брокерские счета](../features/brokerage-accounts.md), [Portfolio](../features/portfolio-view.md), [Account Ledger](../features/brokerage-account-ledger.md) и [Future Cash Events](../features/brokerage-account-upcoming-events.md). - [Frontend UI resilience](../features/frontend-ui-resilience.md): явные loading, error, empty и cached-snapshot состояния. Термины этих возможностей определяет [глоссарий домена](domain-glossary.md), а причины ключевых технических решений — [ADR](../adr/README.md). ## Локальные границы - Frontend — React-клиент; он не вызывает T-Bank напрямую. - Backend — NestJS API `/api/v1`, владеющий auth, SQLite-данными и T-Bank gRPC boundary. - OpenAPI backend — единственный контракт frontend; committed client генерируется штатным workflow. - Поставка остаётся локальной: deployment, Docker, CI/CD и облачные сервисы не входят в текущие границы. - Portfolio Snapshot, Future Cash Events и Ledger pages существуют как read-only наблюдения текущего T-Bank connection; система не хранит историю портфеля, будущих событий или брокерских счетов как долговременные агрегаты. ## Поток auth/session ```mermaid sequenceDiagram participant U as User participant F as Frontend participant B as Backend participant D as SQLite U->>F: Регистрация или вход F->>B: POST /api/v1/auth/* B->>D: Создаёт User и Session B-->>F: Access token + refresh cookie F->>B: Защищённый запрос с Bearer token B-->>F: Данные или Problem Details F->>B: POST /api/v1/auth/refresh при истечении access token B->>D: Ротирует refresh token B-->>F: Новый access token + refresh cookie ``` ## Поток инвестиционных данных ```mermaid sequenceDiagram participant U as User participant F as Frontend participant B as Backend participant D as SQLite participant T as T-Bank gRPC U->>F: Открывает счета или Portfolio F->>B: GET /api/v1/brokerage-accounts/* (Bearer) B->>D: Читает T-Bank connection B->>T: Запрос через server-side gRPC boundary T-->>B: Upstream-данные B-->>F: Нормализованные данные или Problem Details F-->>U: Экран с данными или локальным состоянием ошибки ``` Подробный статус локальных gates и deferred Prisma e2e находится в [audit remediation registry](../development/audit-remediation.md).