Агуулгыг алгасах

Хүсэлт дамжуулах (Relay)

Платформ хоорондын хугацаатай хүсэлтийн дамжуулалт ба SLA хяналт. Дээд платформоос (жишээ нь И-Монгол) ирсэн хүсэлтийг доод байгууллагууд руу чиглүүлж, заасан хугацаанд биелэлтийг хянаж, хариуг цуглуулна.

UI: /admin/relay, /admin/relay/config, /admin/relay/{id}.

Загвар

graph LR
  UP["Дээд платформ<br/>(upstream)"] -->|"webhook"| R["Gerege App — Relay"]
  R -->|"чиглүүлэлт + SLA"| D1["Хороо"]
  R --> D2["Цагдаа"]
  R --> D3["Татвар"]
  R --> D4["УБЕГ"]
  D1 -->|"хариу"| R
  R -->|"webhook"| UP
Хүснэгт Юу
relay_platforms Дээд / доод платформын бүртгэл — direction: upstream | downstream
relay_routes Чиглүүлэлтийн дүрэм: service_code → platform, target бүрийн SLA минутаар
relay_requests Ирсэн хугацаатай хүсэлт (due_at, status, breach_notified)
relay_assignments Доод платформ бүрт хуваарилагдсан ажил
relay_events Бүх шилжилтийн түүх

Нэг service_code хэд хэдэн платформд хуваарилагдаж болно (UNIQUE (service_code, platform_id)).

Endpoint-ууд

Хяналт (relay.view)

Endpoint Юу
GET /v1/relay/overview SLA хяналтын самбар — хугацаа, зөрчил
GET /v1/relay/requests Хүсэлтийн жагсаалт
GET /v1/relay/requests/{id} Дэлгэрэнгүй + assignment-ууд

Удирдлага (relay.manage)

Endpoint Юу
GET/POST /v1/relay/platforms Платформ бүртгэх
DELETE /v1/relay/platforms/{id} Устгах
GET/POST /v1/relay/routes Чиглүүлэлт
DELETE /v1/relay/routes/{id} Чиглүүлэлт хасах
POST /v1/relay/requests Хүсэлт үүсгэх (гараар)
POST /v1/relay/requests/{id}/forward Доош дамжуулах
POST /v1/relay/assignments/{id}/respond Хариу бүртгэх

Webhook

Endpoint Юу
POST /v1/relay/webhook Гадаад платформоос ирэх хүсэлт / хариу

Платформ бүр өөрийн webhook_secret-тэй (64 hex тэмдэгт). Ирсэн webhook түүгээр гарын үсэг зурагдсан байх ёстой — эс бөгөөс татгалзана. Шинэ платформ үүсгэхэд secret автоматаар үүснэ.

Secret-ийг нэг л удаа харна

Webhook secret нь платформ үүсгэх үед харагдана. Дараа нь дахин үзэх боломжгүй — алдвал платформыг дахин үүсгэх эсвэл secret шинэчлэх хэрэгтэй.

SLA хяналт

Хүсэлт ирэхэд due_at тооцоологдоно (чиглүүлэлтийн sla_minutes-аас). Самбар нь дараах байдлаар бүлэглэнэ:

Төлөв Утга
received Ирсэн, хараахан дамжаагүй
Хугацаандаа due_at хараахан болоогүй
Анхааруулга Хугацаа дуусахад ойрхон
Зөрчил due_at хэтэрсэн — breach_notified тэмдэглэгдэнэ

Зөрчил гарахад тухайн платформын supervisor_contact руу мэдэгдэнэ.

Демо горим

RELAY_DEMO_MODE идэвхтэй үед simulator нь бүртгэгдсэн доод платформуудын нэрийн өмнөөс хариу үүсгэж, самбарыг өөрөө хөдөлгөнө. Ингэснээр интеграц хийхээс өмнө урсгалыг бүтнээр нь харах боломжтой.

Seed өгөгдөл (хоосон үед л суудаг):

Платформ Чиглэл
e-mongolia — И-Монгол upstream
khoroo — Хороо downstream
police — Цагдаагийн ерөнхий газар downstream
tax — Татварын ерөнхий газар downstream
civil-reg — Улсын бүртгэлийн ерөнхий газар downstream

Чиглүүлэлтийн жишээ: residence-cert → хороо (30 мин) + УБЕГ (45 мин), background-check → цагдаа (60 мин), tax-clearance → татвар (40 мин).

RLS-гүй яагаад вэ?

Relay-ийн хүснэгтүүд нь платформ хоорондын тохиргоо ба телеметр (иргэн тус бүрийн өгөгдөл биш) тул gateway, roles/permissions-тэй ижил ангилалд ордог. Хамгаалалт нь HTTP давхаргад — relay.view / relay.manage эрхээр.