Баримт, гарын үсэг, файл¶
Кассын ард болж буй бүхэн няцаагдашгүй мөрөө үлдээх ёстой — энэ бүлэг нь хуулийн хүчинтэй гарын үсэг, түүнд хэрэглэгдэх хувийн асет, болон файлын хадгалалт/интеграци-г хамарна.
Цахим гарын үсэг (PAdES)¶
PDF-д server талаас гарын үсэг зурах урсгал нь eID Mongolia /v3 API-аар
явагдана. Хоёр хэлбэр байна:
| Хэлбэр | Endpoint | Хэрэглээ |
|---|---|---|
| Баримтгүй (digest) | POST /api/v1/sign/initiate → GET /api/v1/sign/status/{sid} |
Зөвхөн SHA-256 хэшид гарын үсэг — гүйлгээ, шилжүүлгийн баталгаа |
| PDF (PAdES) | POST /api/v1/sign/init → GET /api/v1/sign/{id} → GET /api/v1/sign/{id}/download |
Гэрээ, зөвшөөрөл, албан бичиг |
Бүгд нэвтэрсэн хэрэглэгч шаардана. Урсгал нь асинхрон: init нь session
үүсгэж, иргэн eID апп дээрээ баталгаажуулах хүртэл poll нь хүлээлтийн төлөв
буцаана, дараа нь download нь гарын үсэгтэй PDF-ийг өгнө.
UI: /me/eid/sign.
Sign relay — гуравдагч RP-ууд¶
eID Mongolia-ийн /v3 нь креденшлгүй дуудлагыг 401-ээр татгалздаг. Тиймээс
креденшл эзэмшигч платформ урдаа зогсож reverse-proxy болно:
Гуравдагч апп ──► https://sso.gerege.mn/rp/sign/v3/* ──► eidmongolia /v3/*
(RP креденшл энд нэмэгдэнэ)
Ингэснээр гуравдагч апп-ууд өөрсдөө eID RP креденшл эзэмшихгүйгээр гарын үсэг
зуруулна. Хандалт нь svc:eid-sign олголтоор хянагдана —
API Gateway-г үз.
Порт
Энэ репо-гийн compose дээр api нь 127.0.0.1:8091 дээр loopback-д гардаг —
nginx /rp/sign-ыг тэр порт руу проксилно. Бусад бүх траффик web BFF-ээр
л явна.
Хувийн асет¶
Гарын үсэгт хэрэглэгдэх зураг, нэр, тамгыг хэрэглэгч өөрөө удирдана
(/api/v1/me/*, бичилт нь govWrite хязгаарлагчтай):
| Метод | Зам | Юу |
|---|---|---|
GET PUT DELETE |
/api/v1/me/signature |
Гарын үсгийн зураг |
PUT |
/api/v1/me/latin-name |
Латин нэр (олон улсын баримтад) |
PUT |
/api/v1/me/org-name-latin/{regNo} |
Байгууллагын латин нэр |
GET PUT DELETE |
/api/v1/me/orgstamp/{regNo} |
Байгууллагын тамга |
Латин нэр нь кирилл бус хэлээр (en, zh) UI-д давуу эрхтэй харагдана —
орос хэл нь кирилл тул монгол бичгийн нэр хэвээр үлдэнэ.
UI: /me/profile.
Gerege Space — апп-ын өөрийн хадгалалт¶
Платформын өөрийн SFTP дээр суурилсан хадгалалт. Хэрэглэгч бүрт квот олгож,
файлыг BASE_PATH/users/<userID>/ дор хадгална.
| Метод | Зам | Юу |
|---|---|---|
GET |
/api/v1/gspace |
Файлын жагсаалт + ашиглалт/квот |
POST |
/api/v1/gspace/upload |
Файл оруулах (квот хэтэрвэл татгалзана) |
GET |
/api/v1/gspace/download |
Татах |
DELETE |
/api/v1/gspace |
Устгах |
- Квотын анхдагч утга 2 MB (
GSPACE_QUOTA_BYTES). GSPACE_HOSTхоосон бол чадвар идэвхгүй — UI карт нь үүнийг зохицуулна.
Host key заавал
GSPACE_HOST_KEY нь SFTP хостын нийтийн түлхүүр. Production-д заавал —
эс бөгөөс SFTP холболт fail-closed алдаа өгнө. Development-д хоосон бол
шалгалтгүйгээр зөвшөөрөгдөнө (MITM эрсдэлтэй, зөвхөн локалд).
Гуравдагч этгээдийн интеграци¶
Хэрэглэгч өөрийн бүртгэлээ гуравдагч үйлчилгээтэй холбоно. OAuth токен нь storage давхаргад AES-256-GCM-ээр шифрлэгдэж хадгалагдана; домэйн давхарга нь зөвхөн утгыг зөөнө.
| Провайдер | Юу хийж болох |
|---|---|
google-drive |
Файл жагсаах, урьдчилан харах, оруулах |
dropbox |
Файл жагсаах, урьдчилан харах, оруулах |
google-meet |
Уулзалтын орон зай (space) үүсгэх |
google-login |
Бүртгэл холбох (нэвтрэлтийн хэсэг) |
Суурь endpoint-ууд:
| Метод | Зам | Юу |
|---|---|---|
GET |
/api/v1/integrations |
Холбогдсон провайдерууд |
POST |
/api/v1/integrations |
Холбох (OAuth callback-ийн дараа) |
GET |
/api/v1/integrations/{provider}/token |
Тухайн провайдерын токен (server талд) |
DELETE |
/api/v1/integrations/{provider} |
Салгах |
BFF нь провайдер тус бүрийн ажлын endpoint-уудыг нэмж өгдөг —
/api/integrations/google-drive/files, /api/integrations/dropbox/upload,
/api/integrations/google-meet/create-space гэх мэт.
INTEGRATION_ENC_KEY
Токеныг шифрлэх түлхүүр. Хэзээ ч бүү соль — superadmin MFA-ийн TOTP secret болон бүх интеграцын токен түүгээр шифрлэгдсэн; солибол бүгд эвдэрнэ.
UI: /me/integrations.