Files
docs/architecture/system-overview.md
T

73 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Обзор системы
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 и облачные сервисы не
входят в текущие границы.
- Snapshot Portfolio и кэш Ledger существуют только в runtime-памяти; система
не предоставляет историческое хранилище портфеля.
## Поток 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).