11 roadmap
Запланированные функции и известные ограничения OneWallet.
В разработке [PLAN]
| Фича |
Описание |
Зависит от |
| IPPS Stage 2 |
Внешний банковский кошелёк — пополнение и вывод через IPPS |
IPPS API контракт |
| Redis intent streaming |
Статус платежа в реальном времени через stream.ipps.results / stream.qp.results вместо polling |
Phase 2B (Payment Manager) |
| Device Binding Phase 2 |
Блокировка аккаунта при смене устройства (fingerprint + BOT compliance) |
BOT requirement 1.3 |
| Settlement endpoint |
Запрос расчёта агентом через merchant_app → PM |
PM /settlements endpoint |
| Google/Apple OAuth |
Альтернативный вход без email/пароля |
Phase 2 Auth Center |
| PII Key Rotation |
Ротация RSA-ключей шифрования PII без даунтайма |
Runbook + migration tooling |
| S3 hard-delete |
Удаление KYC-файлов (документы, selfie) при PDPA hard-delete пользователя |
Garage S3 API |
| Finance / Support роли |
Реализация guards для ролей finance и support в admin-эндпоинтах |
Admin Panel v2 |
| Wallet provisioning в approve |
Создание TigerBeetle-аккаунта при KYC approve (пока — отдельный шаг) |
TigerBeetle migration |
Известные ограничения
| Ограничение |
Где |
Workaround |
| Статус платежа через polling, не streaming |
Flutter App → Auth Center → PM |
Клиент опрашивает getTransactionStatus каждые N секунд |
| S3-файлы не удаляются при hard-delete |
KYC-сервис / StorageService |
Ручная очистка Garage bucket после isArchived=true |
finance и support роли существуют в БД, но guards не реализованы |
admin_roles таблица |
Используются только superadmin и operator |
| Токен не привязан к appId |
Auth Center JWT |
Разграничение wallet/closeloop/merchant держится только на accountType (см. tech debt) |
| TB аккаунт создаётся отдельно от KYC approve |
AdminKycEndpoint.approve() |
createWalletForUser() — ручной recovery action |
| Тестовая БД не содержит views |
v_tx_history, v_user_tb_accounts |
10 интеграционных тестов падают; требуется добавить views в тестовый контейнер |