Files
specs/openspec/changes/archive/2026-08-12-add-tbank-connection/tasks.md
T

28 lines
2.9 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.
## 1. Backend foundation
- [x] 1.1 Добавить gRPC dependencies, полный vendored набор T-Bank protobuf contracts из `references/moex-vibe`, environment validation для `TOKEN_ENCRYPTION_KEY`, `TBANK_GRPC_ENDPOINT`, `TBANK_RATE_LIMIT_PER_SECOND` и optional `TBANK_CA_CERT_PATH`.
- [x] 1.2 Добавить Prisma-модель `TbankConnection` с уникальным `userId`, зашифрованным token и `connectedAt`, затем создать migration.
- [x] 1.3 Реализовать AES-256-GCM storage для versioned base64 payload и fail-fast обработку невалидного encryption key без логирования secret.
## 2. T-Bank connection API
- [x] 2.1 Реализовать TLS T-Bank gRPC client для `UsersService/GetAccounts`: 10-second deadline, FIFO limit 5 RPS, максимум 50 ожидающих вызовов, один retry временных кодов через 1 second и safe error mapping.
- [x] 2.2 Реализовать authenticated `GET`, `PUT` и idempotent `DELETE /api/v1/tbank-connection`, включая OpenAPI DTO и Problem Details codes `INVALID_TBANK_TOKEN` и `TBANK_UNAVAILABLE`.
- [x] 2.3 Убедиться, что token и его фрагменты не попадают в HTTP responses, OpenAPI examples, exception messages, application logs или gRPC metadata logs.
- [x] 2.4 Добавить минимальные backend checks: crypto round-trip/invalid key, неуспешный `PUT` не сохраняет token, `DELETE` удаляет connection, endpoints требуют auth и не раскрывают token.
## 3. Generated API contract
- [x] 3.1 Запустить backend и перегенерировать коммитируемые frontend OpenAPI-типы из `/api/docs-json`.
## 4. Frontend settings
- [x] 4.1 Добавить FSD feature T-Bank connection на typed API client и React Query: загрузка статуса, create/replace, delete и обновление cache.
- [x] 4.2 Заменить settings placeholder секцией подключения: read-only token hint, password field, локализованный status/ошибки и disabled pending state.
- [x] 4.3 Добавить Mantine confirmation modal для удаления; после успешного `PUT` очищать token field, при error сохранять его. Проверить UI-flow вручную.
## 5. Documentation and verification
- [x] 5.1 Создать `docs/features/tbank-connection.md` с пользовательским потоком, API, configuration, RFC 3339 UTC, правилами secret handling и Mermaid sequence diagram; описать 5 RPS, FIFO queue 50, retry и MVP-ограничения.
- [x] 5.2 Запустить backend lint, tests и build; frontend lint, typecheck, tests, build и no-todo check; провалидировать OpenSpec change.