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

Баримт, гарын үсэг, файл

Кассын ард болж буй бүхэн няцаагдашгүй мөрөө үлдээх ёстой — энэ бүлэг нь хуулийн хүчинтэй гарын үсэг, түүнд хэрэглэгдэх хувийн асет, болон файлын хадгалалт/интеграци-г хамарна.

Цахим гарын үсэг (PAdES)

PDF-д server талаас гарын үсэг зурах урсгал нь eID Mongolia /v3 API-аар явагдана. Хоёр хэлбэр байна:

Хэлбэр Endpoint Хэрэглээ
Баримтгүй (digest) POST /api/v1/sign/initiateGET /api/v1/sign/status/{sid} Зөвхөн SHA-256 хэшид гарын үсэг — гүйлгээ, шилжүүлгийн баталгаа
PDF (PAdES) POST /api/v1/sign/initGET /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.