Кабинет, формы, операторский экран, публичный интерфейс.
Серверная часть
Боевой backend вынесен из веб-приложения.
Next.js отвечает за кабинет. Нагрузка, видео, заявки и распознавание уходят в отдельные сервисы: Go core-api и Python vision-service.
Контур запуска
Режим: development. Основной сервер: не настроен. В продакшне веб не должен сам принимать финальные решения по биометрии.
Sumsub-compatible слой включен в Go core-api. Для поддержанных методов сохраняются те же пути, заголовки, имена полей, статусы и webhook-события.
Сессии, заявки, статусы, webhooks, PostgreSQL, очередь и связь с распознаванием.
Документ, лицо, видео, живость, моргание, повороты головы, риск.
Данные, короткие сессии, файлы доказательств и изоляция окружений.
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | core-api /healthz Состояние контура | Проверяет PostgreSQL и доступность Python-сервиса распознавания. |
| POST | core-api /v1/liveness/sessions Создать живую проверку | Генерирует случайные команды: моргнуть, повернуть голову, открыть рот, прочитать код. |
| POST | core-api /v1/liveness/sessions/:id/evidence Передать видео-доказательство | Передает ключ видео в vision-service и сохраняет техническое решение. |
| POST | core-api /v1/verifications Создать проверку | Связывает документ, живую проверку и результат распознавания. |
| POST | core-api /resources/applicants Sumsub-compatible: создать заявителя | Тот же внешний путь и camelCase-поля для клиентов, которые переезжают с Sumsub. |
| POST | core-api /resources/accessTokens/sdk Sumsub-compatible: выдать SDK token | Клиент меняет адрес API, токен и секрет; пользователь открывает Faces verification flow. |
| GET | core-api /v1/compatibility/sumsub/capabilities Список поддержанных методов | Показывает только методы, которые повторяются по контракту как exact-supported-endpoints-only. |
| POST | vision-service /v1/document/analyze Распознать документ | Без подключенной модели не принимает автоматически, а возвращает ручную проверку. |
| POST | vision-service /v1/face-match/analyze Сравнить лица | Сравнивает лицо из документа и кадр живой проверки при подключенной модели. |
Правило продакшна
Если модель паспорта, лица или живости не подключена, система не ставит `accepted`. Она возвращает ручную проверку или состояние `model_not_configured`.