74 lines
3.4 KiB
Markdown
74 lines
3.4 KiB
Markdown
# Обзор системы
|
||
|
||
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).
|