2.9 KiB
2.9 KiB
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и optionalTBANK_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и idempotentDELETE /api/v1/tbank-connection, включая OpenAPI DTO и Problem Details codesINVALID_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.