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

2.9 KiB
Raw Blame History

1. Backend foundation

  • 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.
  • 1.2 Добавить Prisma-модель TbankConnection с уникальным userId, зашифрованным token и connectedAt, затем создать migration.
  • 1.3 Реализовать AES-256-GCM storage для versioned base64 payload и fail-fast обработку невалидного encryption key без логирования secret.

2. T-Bank connection API

  • 2.1 Реализовать TLS T-Bank gRPC client для UsersService/GetAccounts: 10-second deadline, FIFO limit 5 RPS, максимум 50 ожидающих вызовов, один retry временных кодов через 1 second и safe error mapping.
  • 2.2 Реализовать authenticated GET, PUT и idempotent DELETE /api/v1/tbank-connection, включая OpenAPI DTO и Problem Details codes INVALID_TBANK_TOKEN и TBANK_UNAVAILABLE.
  • 2.3 Убедиться, что token и его фрагменты не попадают в HTTP responses, OpenAPI examples, exception messages, application logs или gRPC metadata logs.
  • 2.4 Добавить минимальные backend checks: crypto round-trip/invalid key, неуспешный PUT не сохраняет token, DELETE удаляет connection, endpoints требуют auth и не раскрывают token.

3. Generated API contract

  • 3.1 Запустить backend и перегенерировать коммитируемые frontend OpenAPI-типы из /api/docs-json.

4. Frontend settings

  • 4.1 Добавить FSD feature T-Bank connection на typed API client и React Query: загрузка статуса, create/replace, delete и обновление cache.
  • 4.2 Заменить settings placeholder секцией подключения: read-only token hint, password field, локализованный status/ошибки и disabled pending state.
  • 4.3 Добавить Mantine confirmation modal для удаления; после успешного PUT очищать token field, при error сохранять его. Проверить UI-flow вручную.

5. Documentation and verification

  • 5.1 Создать docs/features/tbank-connection.md с пользовательским потоком, API, configuration, RFC 3339 UTC, правилами secret handling и Mermaid sequence diagram; описать 5 RPS, FIFO queue 50, retry и MVP-ограничения.
  • 5.2 Запустить backend lint, tests и build; frontend lint, typecheck, tests, build и no-todo check; провалидировать OpenSpec change.