Petronet
OPEN SOURCE · APACHE 2.0 · GO

Модульт дижитал үйлчилгээний нээлттэй цөм юм

Petronet-ийн base repository нь identity, tenant, RBAC, SSO, апп суулгах runtime болон нэг built-in SSO Clients апп агуулна. Бизнес аппууд тусдаа product distribution-аас нэмэгдэнэ.

1үндсэн репод багтсан апп7хэл — монгол + НҮБ-ын 61Go API бинари
ЯАГААД ЭНЭ АРХИТЕКТУР

Нэг API процесс, тенант бүрт тусдаа суулгалт

Compile хийсэн module-ууд Go process дотор route, menu, permission, migration-аа бүртгэнэ. Аль модуль идэвхтэйг tenant бүрийн installation state шийднэ.

Компиллогдсон Go модулиуд

Модуль бүр `pkg/nexus` Go гэрээг хэрэгжүүлж нэг API бинарид компиллогдоно. Маршрут, цэс, эрх, миграцаа module өөрөө бүртгэнэ.

Тенант бүрийн апп стор

Аль байгууллагад аль апп идэвхтэйг өгөгдлийн сан шийднэ. Суулгаагүй апп руу хандвал хориглоно — код нь байгаа ч хаалга нь хаалттай.

Хамаарал шийдвэрлэгч

Рекурсив шийдвэрлэлт, мөчлөг илрүүлэлт, хувилбарын шалгалт. Апп суулгахад түүний хамаарал бүр тохирох хувилбартайгаа хамт орно.

Bundled эсвэл signed remote каталог

Default горимд release-тэй ирсэн `catalog/apps.json`-ийг уншина. `APP_CATALOG_URL` тохируулбал Ed25519 гарын үсэгтэй remote catalog-ийг шалгаж, cache болон bundled файл руу аюулгүй fallback хийнэ.

ҮНДСЭН DISTRIBUTION

Нэг built-in апп, нэмэгдэх боломжтой платформ

Энэ репогийн каталогт SSO клиент удирдах апп л байна. Бизнес аппуудыг тусдаа distribution репо компиллож, өөрийн каталогоор нэмдэг.

  • SSO клиентүүд — OAuth2/OIDC клиент бүртгэл
ПЛАТФОРМЫН СУУРЬ

Бүтээгдэхүүн болгонд дахин бичих шаардлагагүй зүйлс

Эдгээр нь base runtime-д бодитоор байгаа shared capability-ууд. Гадаад provider ашигладаг хэсэг нь production credential болон тохиргоо шаарддаг.

Хүсэлтийн хамгаалалт

Хэт олон зэрэг хүсэлтийг 503-аар хязгаарлах load shedder, гадаад дуудлагын timeout, зориулалтын retry бодлого платформд хэрэгжсэн.

Төрийн системийн connector

XYP-ийн иргэн, хуулийн этгээдийн лавлагаа болон eID/ДАН identity connector код багтсан. Live үйлчилгээ нь тус бүрийн endpoint, client credential шаардана.

Кодонд хэрэгжсэн хамгаалалт

Session token hash-аар, нууц үг bcrypt-ээр хадгалагдана. Tenant хүсэлт database role, tenant context болон RLS хамгаалалттай хүснэгтүүдээр тусгаарлагдана.

Өөрийн өгөгдөлд холбогдсон AI

Gemini түлхүүр өгвөл чат, яриа таних, унших, орчуулга ажиллана. Бизнес өгөгдөлд хандах хэрэгслийг тухайн distribution-ийн апп өөрөө бүртгэнэ.

Долоон locale, англи fallback

Монгол, англи эх мөрүүд дээр НҮБ-ын бусад таван хэлний overlay нэмэгдэнэ. Орчуулга дутвал англи руу fallback хийж, CI үлдсэн цоорхойг тайлагнана.

Ажиглалт ба аудит

Хэмжүүр, амьд ба бэлэн байдлын шалгалт, хэн юуг хэзээ өөрчилснийг бүртгэсэн ул мөр — эхний өдрөөс.

ИДЭВХТЭЙ ХАМГААЛАЛТ

Танилтаас эрх хүртэл нэг баталгааны гинж

eID identity → серверийн session → tenant membership → RBAC → OIDC client. Алхам бүр сервер талд шалгагдана.

  • httpOnly, SameSite session cookie
  • Tenant-аар тусгаарласан role ба permission
  • Бүртгэлтэй OAuth2 redirect URI шалгалт
  • Login ба access audit event

Petronet

Модульт аппууд, tenant тусгаарлалт, RBAC

eID Mongolia

Push, QR, App2App, баталгаажсан identity

OIDC / SSO

Холбогдсон аппууд, нэг session

IDENTITY БА ACCESS

Нэг серверийн identity ба access урсгал

Petronet нь local login, eID, federated SSO-г tenant membership, role, audit болон OIDC provider-тэй нэг server-side урсгалд холбодог.

eID нэвтрэх сувгууд

Тохируулсан deployment дээр регистрийн дугаарын push, desktop QR болон mobile App2App урсгалыг backend эхлүүлж, төлвийг шалгана.

Нэг нэвтрэлт — олон систем

Built-in OAuth2/OIDC provider нь идэвхтэй platform session-ийг бүртгэлтэй redirect URI бүхий клиентүүдэд дахин ашиглах боломж олгоно.

Credential сервер талд үлдэнэ

eID RP secret болон бусад provider credential browser-д очихгүй. Session token database-д зөвхөн hash хэлбэрээр хадгалагдана.

Апп ба вэбийн нэг урсгал

Web болон native shell нь backend-ийн эхлүүлэх, төлөв шалгах endpoint-уудыг ашиглана; provider credential клиентэд хадгалагдахгүй.