Хүсэлт дамжуулах (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 эрхээр.