FinTech / Compliance

СОРМ-модуль для МФО

СОРМ-модуль для МФО — 1

Автономный модуль законного перехвата (ПТС ОРМ), разработанный для информационной системы микрофинансовой организации. Модуль принимает данные от внутренних сервисов, хранит их в PostgreSQL и предоставляет доступ пульту управления уполномоченного государственного органа через регламентированный GraphQL API по выделенному зашифрованному каналу связи.

Архитектура

Развёрнут как отдельный программный модуль (вариант «б» по требованиям ПТС) с собственной базой данных, изолированный от основной информационной системы. Стек: Python 3.11+, PostgreSQL 15+ (PostGIS, pg_trgm), Strawberry GraphQL, Uvicorn/Starlette. Обработка отложенных задач — Celery + Redis.

GraphQL API

Четыре эндпоинта: /query (HTTP 1.1) для поисковых и специальных запросов с курсорной и offset-пагинацией, /subscription (WebSocket, субпротокол graphql-transport-ws) для подписок на данные в реальном времени и сигналов о состоянии системы, /download для передачи неформатированных данных с chunked encoding и range requests, и /metric с Prometheus-совместимыми PromQL-эндпоинтами для мониторинга.

Модель данных

Пять типов сущностей, поступающих от внутренних сервисов через валидированный REST API: Пользователи (с хронологией изменений SCD Type 2), AAA-события (вход/выход), События услуг (создание счёта, выдача/погашение займа), Коммуникации и Платежи. Все таблицы партиционированы помесячно по timestamp для эффективного 3-летнего хранения (~1 ТБ прогнозируемый объём).

Движок отложенных запросов

Сложные запросы, превышающие настраиваемые тайм-ауты, автоматически маршрутизируются в Celery workers. Пульт управления подписывается на обновления статуса (NOTSTARTED → RUNNING → READY) через WebSocket и получает результаты по готовности. Поддерживается отмена, удаление и автоматическая очистка по TTL.

Безопасность

Взаимная аутентификация TLS (X.509) с индивидуальными сертификатами для каждого ПУ через VPN-туннелированный выделенный канал. Полное журналирование всех сеансов, запросов, изменений конфигурации и попыток несанкционированного доступа. Сигналы (UNAUTHORIZEDACCESS, CRITICALERROR, SCHEMACHANGED и др.) передаются на ПУ в реальном времени с гарантированной доставкой при восстановлении соединения.

Ключевые особенности

  • GraphQL + WebSocket — регламентированный API с подписками в реальном времени (graphql-transport-ws)
  • Движок отложенных запросов — асинхронная обработка на Celery с отслеживанием статуса
  • Хранение 3 года — помесячное партиционирование, ~1 ТБ прогнозируемый объём
  • Полное соответствие ФЗ №153 — обработка персональных данных согласно требованиям законодательства РФ
  • Мониторинг Prometheus — PromQL-совместимый эндпоинт /metric
  • Сигналы о состоянии — уведомления о здоровье системы с гарантированной доставкой
  • ~80 000 событий/сутки — валидация, нормализация и индексация для полнотекстового поиска