Перейти к содержанию

Реестр и Relay

Оба модуля работают с мастер-данными организации (а не с данными отдельного гражданина), поэтому RLS у них нет — защита выставлена на уровне HTTP по правам.

Ring System · R1 — реестр услуг

Реестр отвечает на управленческий вопрос: насколько полон инвентарь государственных услуг, насколько он цифровой и насколько близок к принципу once-only? Каждый паспорт услуги соответствует словарю CPSV-AP.

Статус паспорта

Статус Значение
draft Черновик — в публичном каталоге не виден
published Опубликован — отдаётся через /api/v1/catalog/*
archived В архиве

Уровни проактивности

По эстонской модели — от простой информации до автоматической услуги:

Уровень Значение
information Опубликована только информация
online Заявления принимаются онлайн
once_only Уже имеющиеся данные повторно не запрашиваются
proactive Услуга предлагается без заявления гражданина

Обзорная панель считает услуги по каждому уровню и средний нормативный срок рассмотрения.

Доказательства и once-only

registry_evidences — каталог доказательных документов. У каждой записи есть признак in_khur: есть ли эти сведения в государственном обмене данными.

Связь «паспорт ↔ доказательство» несёт признак from_citizen: требуют ли документ у гражданина, или ведомство само получает его из системы.

Нарушение принципа once-only

Каждый случай, где in_khur = true и from_citizen = true, — нарушение once-only: у гражданина просят то, что у государства уже есть. GET /api/v1/registry/once-only перечисляет такие случаи и по годовой частоте оценивает нагрузку на граждан.

Версии и delta

Каждая публикация создаёт версию паспорта (registry_service_versions). Поля Delta* хранят разницу с базовой линией до реинжиниринга — отрицательное значение означает улучшение (меньше шагов, меньше времени).

Эндпоинты

registry.view — чтение, registry.manage — запись. admin покрывает оба.

Метод Путь Право
GET /api/v1/registry/overview view
GET /api/v1/registry/catalog view
GET /api/v1/registry/once-only view
GET /api/v1/registry/services · /{id} view
GET /api/v1/registry/services/{id}/versions view
GET /api/v1/registry/services/{id}/once-only view
GET /api/v1/registry/evidences · /life-events view
POST PUT DELETE /api/v1/registry/services… manage
POST /api/v1/registry/services/{id}/publish · /archive manage
PUT /api/v1/registry/services/{id}/evidences manage
POST PUT DELETE /api/v1/registry/evidences… manage
POST DELETE /api/v1/registry/life-events… manage

UI: Admin → Registry (/admin/registry, /admin/registry/services, /admin/registry/evidences).

Relay — маршрутизация запросов между платформами

Relay принимает срочные запросы от вышестоящей платформы, рассылает их нижестоящим, следит за SLA и собирает ответы.

flowchart LR
    U[Upstream platform] -->|POST /relay/requests| R[(Relay)]
    R -->|assignment| D1[Downstream A]
    R -->|assignment| D2[Downstream B]
    D1 -->|respond| R
    D2 -->|respond| R
    R -->|forward-up webhook| U

Статусы

Запрос: receiveddispatchedin_progressfulfilled (либо overdue, rejected).

Назначение: pendingacknowledgedin_progressdone (либо overdue, rejected).

Контроль SLA

Механизм Поведение
Напоминания Нижестоящим уходят напоминания на 75% и 90% окна SLA
Эскалация Через дополнительный период после просрочки назначение автоматически эскалируется руководителю
Timeline received · dispatched · reminded · escalated · responded · fulfilled · overdue · breach_notified · forwarded_up

Отсрочка эскалации

В базовом модуле RelayEscalateGrace равен 2 минутам — это значение шаблона. В production его удлиняют под реальный SLA.

Эндпоинты

Метод Путь Право
POST /api/v1/relay/webhook — (вызов платформы-партнёра)
POST /api/v1/relay/requests manage
POST /api/v1/relay/assignments/{id}/respond manage
POST /api/v1/relay/requests/{id}/forward manage
GET /api/v1/relay/overview · /requests · /requests/{id} view
GET POST DELETE /api/v1/relay/platforms… view / manage
GET POST DELETE /api/v1/relay/routes… view / manage

RelayRoute — правило маршрутизации service_code → platform со своим SLA для каждой цели.

UI: Admin → Relay (/admin/relay, /admin/relay/config, /admin/relay/{id}).

Как защищены ingest/respond

В этой эталонной реализации записи requests и assignments защищены JWT + relay.manage. В production правильная форма — вызовы вышестоящих и нижестоящих платформ через шлюз (m2m OAuth).