Gerege Eco System-ийн суурь платформ

Байгууллагын бүх систем
нэг найдвартай цөм дээр.

Танилт, эрх, апп, гарын үсэг, тайлан, AI, хяналт — нэг платформд. Хүн нэг удаа eID Mongolia-аар нэвтэрч, байгууллага бүр өөрийн хананы цаана ажиллана.

  • eID Mongolia
  • OIDC provider
  • RLS тусгаарлалт
  • 5 AI провайдер
  • 4 native платформ
Хүсэлт бүр нэг замаарcmd/api · нэг процессRequestIDTracingLoggerRecoveryLoadShedder · 1000MetricsSecurityHeaders · CORS · CSRF
Ажлын урсгал/api/v1/*Байгууллага доторх хүн: гишүүнчлэл, эрх, апп, баримт, тайлан, SSO.nexus.gerege.netsession_token
Хүний урсгал/api/v1/me/*Хүн өөрөө, аль ч байгууллагаас гадуур: түүнд ирсэн зүйлс, хүсэлт, хувийн аппууд.nexus.gerege.netsession_token
Операторын урсгал/api/platform/v1/*Суулгацыг удирдагч: байгууллагын амьдралын мөчлөг, аудит, квот, тохиргоо.admin.nexus.gerege.netcp_session
Урсгалууд хоорондоо import хийдэггүй — тест батална
internal/kernel — дундын цөмУрсгалууд цөмийг уншина, цөм урсгалыг мэдэхгүй.dbguardeidflowflagssecuritytelemetryresiliencesettings
PostgreSQLГурван schema · RLS бодлого · dbguardworkspace33 хүснэгтregistry24 хүснэгтoperator8 хүснэгт
NEXUS-ИЙГ ТОЙРСОН ҮЙЛЧИЛГЭЭ

Нэг платформ, зургаан хаяг

Nexus бол ганц сайт биш. Хэсэг бүр өөрийн хаягтай, өөрийн хамгаалалттай — тиймээс нэг нь унавал нөгөө нь хамт унахгүй, нэг cookie бүх хаалгыг онгойлгохгүй.

Gerege NexusПлатформ өөрөө — вэб бүрхүүл ба /api/v1. Next.js + Go.Хаягууд кодод биш, суулгацын тохиргоонд. Тохируулаагүй үйлчилгээ нүүрэнд харагдахгүй.
ХЭНД ЗОРИУЛСАН

Нэг платформ — дөрвөн өнцгөөс

/organisation

Байгууллагад

Ажилтан, эрх, апп, баримтаа нэг газраас. Өгөгдөл тань бусад байгууллагаас хоёр давхар ханаар тусгаарлагдана.

  • Үүрэгт суурилсан эрх
  • Элсэх QR ба урилга
  • Апп суулгах, хасах
/my

Хувь хүнд

Нэг нэвтрэлт, олон байгууллага. Танд ирсэн зүйлс, хүсэлтүүд, хувийн аппууд — нэг дор.

  • eID Mongolia-аар нэвтрэх
  • Байгууллага хооронд шилжих
  • Хувийн апп суулгах
pkg/nexus

Хөгжүүлэгчид

Бизнесийн логикоо бич. Нэвтрэлт, эрх, цэс, миграц, тайлан, AI хэрэгслийг платформоос авна.

  • Go модулийн SDK
  • OIDC клиент ба Mini app
  • nexustest тестийн багц
admin.nexus

Операторт

Суулгацыг тусдаа, хоёр хүчин зүйлтэй консолоос удирдана. Консолын үйлдэл бүр бүртгэгдэнэ.

  • Байгууллагын мөчлөг
  • Квот, flag, зарлал
  • Нөөц ба deploy
ТАНИЛТ БА ЭРХ

Хэн бэ гэдгийг улс,
юу хийхийг байгууллага шийднэ

e-ID Mongolia, Google, гадаад OIDC эсвэл нууц үг — аль замаар орсон ч нэг session, нэг эрхийн загвар. Платформ хаалттай: зөвхөн урьдчилан бүртгэгдсэн эсвэл урилгатай хүн нэвтэрнэ.

eIDGoogleOIDCНууц үг
256 битSession token — санд зөвхөн SHA-256 digest хадгална
12 ц · 90 минБүтэн хугацаа · идэвхгүй бол хаагдана
5 / 15 мин5 буруу оролдлого — дараа нь түгжээ
ШуудХасагдсан гишүүний session тэр дороо зогсоно
Элсэх QR/join/<slug>Байгууллага бүр нэг тогтмол QR-тэй — ажилтан уншуулж, маягтаа бөглөөд хүсэлт илгээнэ.
ПЛАТФОРМ ӨӨРӨӨ IdP

Нэг нэвтрэлтээр
бусад систем ч орно

Nexus бол OAuth2 Authorization Server ба OpenID Connect Provider. Зарласан бүхэн нь ажилладаг — Grafana, Nexus-ийн бусад суулгацууд ч энэ рэйлээр нэвтэрдэг.

Нэг sessionOIDC providerGrafanaNexus-ийн бусад суулгацТаны бүртгүүлсэн клиент
authorization_codePKCE заавалХэрэглэгчийн нэвтрэлт
refresh_tokenЭргэлт + давталт илрүүлэхХулгайлсан token ажиллахгүй
client_credentialsМашин хоорондын дуудлагаХүнгүй систем
id_tokenRS256 JWT/.well-known/jwks.json
Token-ий насжилтБогино access — цуцлалт хурдан хүрнэAccess1 цагRefresh30 хоног
ӨГӨГДЛИЙН ТУСГААРЛАЛТ

Мартагдсан WHERE ч
өөр байгууллагын мөр буцаахгүй

Хоёр давхар хана. Ирээдүйд өөр хүний бичсэн app-д шүүлт дутвал — бусдын өгөгдөл биш, хоосон хариу буцна.

1Query бүрийн шүүлтАппын код дотор · үндсэн хяналт
SELECT … FROM invoices WHERE tenant_id = $1Query бүр байгууллагын түлхүүрийг авч явна.
2Өгөгдлийн сангийн RLS — dbguardPostgreSQL дотор · код мартсан ч ажиллана
SET ROLE gerege_nexus_tenant SET app.current_tenant = <id>Холболт гарах мөчид хэн, аль байгууллага гэдгийг Postgres өөрөө мэднэ — бодлого нь шүүлтийг дахин хийнэ.
Хэрэв app-д WHERE мартагдвал?Нэг л query, хоёр өөр үр дүнSELECT … FROM invoices -- WHERE байхгүй
Ганц давхар хамгаалалттай болБүх байгууллагын нэхэмжлэл нэг дэлгэцэнд гарна.
Nexus дээрЗөвхөн өөрийн байгууллагын мөр — бусдынх нь RLS-ийн цаана үлдэнэ.
Байгууллагагүй ажил (нэвтрэлт, OAuth callback) тусдаа нэвтрэх role-оор явна — цоорхой биш, зориулалтын зам.
Гурван schemaworkspace · registry · operator — хүснэгтийн тоог тест тоолж, хил давахыг барина
Урсгалын хилАжлын, хүний, операторын урсгал хоорондоо import хийхгүйг компиляцын граф шалгана
Замын golden файлШинэ HTTP зам бүр файлд бичигдэнэ — санамсаргүй нэмэгдэж чадахгүй
АЮУЛГҮЙ БАЙДАЛ

Хамгаалалт нэмэлт биш —
давхарга бүрт суурилсан

Нэвтрэлтээс өгөгдлийн сан, хөтчөөс CI хүртэл — нэг давхарга алдвал дараагийнх нь барина.

6хамгаалалтын давхарга
36кодод хэрэгжсэн хяналт
3автомат скан push бүрт
0нууц түлхүүр хөтөчид
Танилт ба sessionХэн бэ гэдгийг найдвартай6 хяналт
  • Session token 256 бит — санд зөвхөн SHA-256 digest
  • Нууц үг bcrypt-ээр hash хийгдэнэ
  • 12 цагийн хугацаа, 90 мин идэвхгүй бол хаагдана
  • 15 минутад 5 буруу оролдлого — түгжээ
  • Нэвтрэлтэд IP тус бүрийн хурдны хязгаар
  • Хасагдсан гишүүний session тэр дороо зогсоно
OAuth2 / OIDCПлатформ өөрөө IdP6 хяналт
  • authorization_code-д PKCE заавал
  • Refresh token эргэлт ба давтан ашиглалт илрүүлэх
  • Клиентийн нууцыг constant-time харьцуулна
  • Access token 1 цаг, opaque — introspect-оор
  • id_token RS256, JWKS-ээр баталгаажна
  • Зөвхөн бүртгэлтэй redirect URI
ӨгөгдөлБайгууллага бүр өөрийн хананы цаана6 хяналт
  • Query бүр tenant_id-аар шүүгдэнэ
  • PostgreSQL RLS — dbguard хоёр дахь хана
  • Гурван schema, хилийг тест барина
  • Credential-ийг SecretSealer битүүмжилнэ
  • Нөөц age-ээр шифрлэгдэнэ — fail-closed
  • Суулгаагүй, унтраасан аппын зам 403
Вэб хамгаалалтХөтөч дээрх халдлагаас6 хяналт
  • CSP — хүсэлт бүрт шинэ nonce, strict-dynamic
  • frame-ancestors none — clickjacking хаалттай
  • CSRF хамгаалалт middleware гинжинд
  • HSTS, X-Content-Type-Options production-д
  • Cookie: HttpOnly, SameSite, Secure
  • Open redirect хориотой — зөвхөн HTTPS, credential-гүй
Оператор ба аудитУдирдлагад ч хязгаар бий6 хяналт
  • Тусдаа origin, тусдаа cookie
  • Хоёр дахь хүчин зүйл (TOTP) заавал
  • 4 үүрэг · 15 чадвар — нэг хүснэгтээс
  • Impersonation шалтгаантай, хугацаатай, бүртгэлтэй
  • Консолын бичих үйлдэл бүр аудитад
  • Устгал 30 хоногийн дараа, break-glass сэрэмжлүүлэгтэй
Хангамжийн гинж ба CIКод орохоос өмнө шалгагдана6 хяналт
  • govulncheck — хамаарлын эмзэг байдал
  • gosec — эх кодын статик шинжилгээ
  • golangci-lint — зөв байдал
  • Даваа бүр хуваарьт эмзэг байдлын скан
  • Каталог Ed25519 гарын үсэгтэй
  • Production-д төрийн системийн mock унтарна
Эмзэг байдал олсон уу?Нийтийн issue-д биш, хувийн журмаар мэдээлнэ үү — SECURITY.md-д дэлгэрэнгүй.security@gerege.mn
APP STORE

Хоосон цөм.
Хэрэгтэй апп нь каталогоос ирнэ.

Nexus бизнесийн аппгүйгээр ачаалдаг. Апп бүр гарын үсэгтэй каталогоор ирж, хэрэгтэй газраа л суулгагдана. Суулгаагүй аппын зам 403 буцаана.

  1. Go модульDistribution репод
  2. Ed25519 гарын үсэгАлсын каталог баталгаатай
  3. Каталог syncКэш fallback · гар ба ар тал
  4. СуулгалтГурван түвшний аль нэгэнд
01 · КОНСОЛПлатформын хэмжээндОператор нэг удаа суулгаж, бүх суулгацад үйлчилнэ.Суулгадаг: операторconsole_apps
02 · БАЙГУУЛЛАГАБайгууллага бүрт тусдааАдмин суулгана. Цэсэнд хэн юу харахыг RBAC шийднэ.Суулгадаг: админapp_installations
03 · ХУВЬ ХҮНХүн өөртөө/my/apps-аас хувийн аппаа суулгаж, аль ч байгууллагаас гадуур ашиглана.Суулгадаг: хүн өөрөөperson_app_installations
ЦӨМД БЭЛЭН

Цөмд бэлэн зургаан том чадвар

Апп бүр эдгээрийг дахин бичихгүй — Nexus-ээс шууд авна.

Эрх ба хаалгаPermissions · RBAC403суулгаагүй бол

App эрхээ зарлахад л хангалттай — шалгалтыг платформ хийнэ. Цэсэнд хэн юу харахыг RBAC шийднэ, суулгаагүй эсвэл унтраасан аппын зам хаалттай.

App эрхээ зарланаЦэс RBAC-аарБайгууллага бүрээр
Тоон гарын үсэгnexus.SignerPIN2баталгаажсан

App баримтаа өгөхөд л PDF-д PAdES гарын үсэг зурагдана. eID-ээр зурсан нь хуулийн баталгаажсан хүчинтэй, байгууллагын нэрийн өмнөөс HSM рэйл бас бий.

PAdESeID · HSMНэг баримтын сан
AI туслахОлон LLM провайдер5провайдер

Gemini, OpenAI, Anthropic Claude, DeepSeek, Qwen — оператор сонгоно. Туслах нь app-ын бүртгэсэн хэрэгслийг (function calling) дуудаж бодит өгөгдлөөр хариулна.

Чат ба хэрэгсэлЯриа ↔ текстОрчуулга
Тайланnexus.RegisterReport30 секquery тааз

App тайлангаа зарлана, хөдөлгүүр ажиллуулна, хуваарьтай илгээж экспортлоно. Нэг удаан тайлан бусад хүсэлтийг хүлээлгэхгүй.

ХуваарьЭкспорт ба хүргэлтБайгууллага хооронд
ХяналтOTel · Grafana6сэрэмжлүүлэг

Метрик, лог, trace — app нэмэлт код бичихгүй. Удаан цэг бүр тухайн хүсэлтийн trace руу нээгдэнэ. API, дэд бүтэц, консол, гадаад систем, нөөц, хяналт өөрөө унтарвал дуугарна.

Exemplar → traceLoki логAlertmanager
Төр ба төлбөрТөрийн гарц · Төлбөр4холболт

Төрийн гарц, Төлбөрийн гарц, Webhook, захиалгат REST — оператор нэг удаа тохируулна, түлхүүрийг цөм битүүмжилнэ.

Төрийн гарцТөлбөрWebhook · REST
ГАРЫН ҮСЭГ

Хоёр рэйл,
нэг баримтын сан

App nexus.Signer-ээс асууна — аль рэйлээр зурахыг платформ мэднэ. Байгууллага HSM-ийг бодлогоосоо бүрмөсөн унтрааж болно.

АнхдагчeID MongoliaТоон гарын үсэгБайгууллагынGerege eSignHSM тоног төхөөрөмж
Хувийн түлхүүрИргэний өөрийн төхөөрөмжидСервер талын HSM-д
Иргэн юу хийх вэPIN2-оор зөвшөөрнөУтас ба регистрээр нотолно
УрсгалАсинхрон — код тулганаСинхрон
Хуулийн хүчБаталгаажсан (qualified)Энгийн
eID урсгал:1 · Эхлүүлэх2 · Код харуулах3 · PIN2 зөвшөөрөх4 · Гарын үсэгтэй PDF
MINI APP

Бусдын аппыг дотроо,
өөрийгөө бусдын дотор

Nexus бүрхүүлТаны вэб аппHost
Telegram · банк · NexusNexus дотор ньGuest
Host: https апп бүрхүүл дотор frame-ээр нээгдэнэ. SSO client ба scope-оор launch токен авна — хэрэглэгч дахин нэвтрэхгүй.
Guest: Telegram-ийн initData-г HMAC-аар, OIDC id_token-ийг JWKS-ээр шалгаж нэвтрүүлнэ.
NATIVE

Дөрвөн удаа бичсэн апп биш —
дөрвөн удаа савласан нэг апп

macOSiOS · iPadOSWindowsAndroid
Нэг bridge гэрээSHELL_CONTRACT v1.6БиометрМэдэгдэл · badgeХэвлэхФайл хадгалахБаримт сканТүгжих · дахин нэвтрэх
Нэг web shell, нэг backend. Linux дээр PWA.
ОПЕРАТОРЫН КОНСОЛ

Суулгацыг удирдах
тусдаа ертөнц

Байгууллага, квот, тохиргоо, нөөц, deploy — нэг консолоос. Хэрэглэгчийн нэвтрэлтээс бүрэн тусдаа.

Тусдаа хаалгаadmin.nexus.gerege.net · cp_session · 8 цаг
Хоёр дахь хүчин зүйл заавалTOTP — нууц үг дангаараа хангалтгүй
Impersonation — хяналттайШалтгаантай, хугацаа хязгаартай, бүртгэгдэнэ
Байгууллагын мөчлөгКвот ба хэмжилтFeature flagЗарлалНөөц ба deployХолболтууд
superadminбүх чадварУстгал, deploy, операторын бүртгэл. Устгал 30 хоногийн дараа хэрэгжинэ — тэр хооронд нэг товчоор буцна.
operator10 чадварБайгууллага үүсгэх, түр зогсоох, квот, тохиргоо, flag, зарлал.
support4 чадварБайгууллагын дотор харж туслана — үүсгэж, устгаж чадахгүй.
auditor3 чадварБүгдийг уншина, юу ч өөрчилж чадахгүй. Платформыг шалгагч.
Чадварsuperoperatorsupportauditor
Аудит унших
Байгууллага үүсгэх · зогсоох
Квот · тохиргоо · flag
Дотор нь харж туслах
Impersonation
Устгах · deploy
4 үүрэг · 15 чадвар · нэг хүснэгт — шат биш, үүрэг бүр өөр хариуцлагатай.
НАЙДВАРТАЙ АЖИЛЛАГАА

Ачаалал, алдаа, гамшигт бэлэн

Хэт ачаалалд унахгүй, алдааг түрүүлж мэдэнэ, өгөгдлөө хэзээ ч алдахгүй.

1000Зэрэг хүсэлтийн таазТүүнээс хойш шууд 503 — дараалал уртсаж бүгд хүлээхээс, зарим нь шууд хариу авах нь дээр.LoadShedder
03:15Өдөр бүрийн нөөцХостоос гарахаас өмнө шифрлэгдэж, эх сервер устгаж чадахгүй газар хадгалагдана.restic · age · off-site
OTelМетрик → traceУдаан цэг бүр тухайн хүсэлтийн trace руу нээгдэнэ. Гадаад систем бүрийн хоцрогдол тусдаа.Prometheus · Loki · Grafana
N×Олон replicaRedis-ээр кэш цэвэрлэгээ ба rate limit дундаа. Redis-гүй бол ганц процессын горимоор ажиллана.Redis · shared rate limit
Нөөцлөлтийн замШифрлэх түлхүүргүй бол юу ч хостоос гарахгүй
  1. 01 · 03:15pg_dumpӨдөр бүр
  2. 02age шифрлэлтFail-closed
  3. 03Гадаад bucketЭх сервер устгаж чадахгүй
  4. 04 · 7 хоногБүрэн сэргээлтХаягдах контейнерт шалгана
Тасалдалгүй шинэчлэлХуучин хувилбар шинэ нь бэлэн болтол ажилласаар.Миграц expand → contract: нэг хувилбарын турш хойш нийцтэй.Миграц бүр өөрийн транзакцад — унавал буцна.
Сэрэмжлүүлэг6 бүлэг · эвдрэхээс өмнө мэдэгдэнэPrometheusAlertmanagerМэдэгдэл
NexusBackupNotLeavingTheHostНөөц хостоос гараагүй — шалтгаан нь nexus_backup_offsite_status-д.
APIУнтарсан, латенси, алдааны төсөв хурдан ба удаан шатах
Дэд бүтэцДиск, санах ой, Postgres, Redis, контейнер, TLS
КонсолНэвтрэлт унах, түгжээ, break-glass ашиглалт
Гадаад системУдаан, доройтсон, бүтэлгүй — систем бүрээр
НөөцлөлтБүтэлгүй, хуучирсан, хостоос гараагүй
Хяналт өөрөөAlertmanager чимээгүй, дүрэм тооцоолж чадахгүй
ХӨГЖҮҮЛЭГЧИДЭД

App-аа бич —
бусдыг нь платформ хийнэ

Бизнесийн логикоо Go модуль болгоод pkg/nexus гэрээг хэрэгжүүлнэ. Нэвтрэлт, эрх, цэс, суулгалт, аудит — платформынх.

  1. 1Гэрээгээ хэрэгжүүлApp юу болохоо өөрөө зарланаID()Permissions()Menus()RegisterRoutes()
  2. 2Distribution-д угсарКомпиляцын үеийн бүртгэл — нэг бинарьnexus.Registerhost.Run()go get …@vX.Y.Z
  3. 3Каталогоор суулгаБайгууллага суулгах хүртэл зам нь 403catalog/apps.jsonEd25519App Store
main.gopkg/nexus · Module
func main() {
  mymodule.New(db)   // өөрөө nexus.Register дуудна
  host.Run()
}
type Module interface {
  ID() string
  Name() string
  Version() string
  Dependencies() []Dependency
  Permissions() []PermissionDefinition
  Menus() []MenuDefinition
  RegisterRoutes(r chi.Router, workspaceAuth …)
}
SDK-ээс:RegisterReportAI toolsJobRunnernexus.SignerPublicReadPersonApppkg/nexustest
3 мөрmain.go-д хангалттайapi.txtSDK гадаргуу snapshot-оор түгжигдсэнdbguardnexustest — production-той ижил

Тоо нь амлалт биш — кодоос тоолсон

main · 2026-10-24
74 266Go эх кодын мөр
74%Тестийн мөр эх кодтой харьцуулахад · 361 файл
250HTTP зам — golden файлд түгжигдсэн
158PostgreSQL миграц
532TypeScript файл — вэб бүрхүүл ба консол
7Хэл — монгол, англи + 5 overlay
Бүгд git ls-files-ээр тоологдоно. Зам, schema-ийн тоог CI өөрөө golden файл ба тестээр шалгадаг.
ТҮГЭЭМЭЛ АСУУЛТ

Шударга хариултууд

Nexus юу хийдэг, юу хийдэггүйг нуухгүй.

Nexus бол ERP юу?

Үгүй. Nexus нь суурь: танилт, эрх, апп суулгах, гарын үсэг, тайлан, AI, хяналт. Бизнесийн аппууд (агуулах, нэхэмжлэл г.м.) тусдаа distribution-аар каталогоос ирнэ.

Хэн нэвтэрч болох вэ?

Платформ хаалттай. Урьдчилан бүртгэгдсэн эсвэл урилгатай хүн л нэвтэрнэ. Байгууллага элсэх QR-ээр ажилтнуудаа хүсэлт илгээлгэж болно.

Манай өгөгдөл бусад байгууллагаас хэрхэн тусгаарлагдах вэ?

Query бүрийн tenant шүүлт дээр PostgreSQL-ийн RLS (dbguard) нэмэгдэнэ. Шүүлт мартагдсан ч өөр байгууллагын мөр буцахгүй.

Ямар AI ашигладаг вэ?

Оператор сонгоно: Gemini, OpenAI, Anthropic Claude, DeepSeek эсвэл Qwen. Яриа ↔ текст нь Gemini-ээр ажилладаг. Тоог app-ын бодит өгөгдлөөс авна — платформ зохиодоггүй.

Өөрийн системээ холбож болох уу?

Тийм. Nexus бол OAuth2/OIDC provider — клиент бүртгүүлж PKCE-тэй нэвтрүүлнэ. Эсвэл аппаа Mini app болгон бүрхүүл дотор ажиллуулна.

Утас, компьютер дээр апп бий юу?

macOS, iOS/iPadOS, Windows, Android — нэг web shell-ийг нэг bridge гэрээгээр савласан. Linux дээр PWA.

Гарын үсэг хуулийн хүчинтэй юу?

eID Mongolia-ийн PIN2-оор зурсан тоон гарын үсэг нь баталгаажсан (qualified). HSM рэйл нь байгууллагын, энгийн хүчинтэй.

Систем бүрээ дахин бүтээхээ боль.
Nexus дээр босго.

Танилт, эрх, гарын үсэг, AI, хяналт — бэлэн. Та зөвхөн өөрийн бизнесийн логикоо бичнэ.

eID Mongolia