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

Технологийн стек

Экосистемийн бүх платформ нэг стек дээр ажиллана. Энэ нь санамсаргүй биш — хөгжүүлэгч нэг репо-оос нөгөө рүү шилжихэд дахин сурах зүйлгүй байх, аюулгүй байдлын засварыг нэг загвараар бүх системд тараах боломжийг өгдөг.

Gerege Nexus-ийн ялгаа

Gerege Nexus нь ижил стекийн (Go · chi · pgx · ORM-гүй · Next.js App Router) дээр ажилладаг ч гурван зүйлээр ялгаатай: модульт монолит (модулиуд нэг бинарид компиллогдож, тенант бүрт апп стороор хуваарилагдана), миграцаа goose-оор хийдэг, Redis-гүйгээр PostgreSQL дээр л түшиглэдэг. Хувилбарууд нь Go 1.25 · Next.js 15.

Backend

Бүрэлдэхүүн Сонголт
Хэл Go 1.26
HTTP стандарт сангийн net/http + go-chi/chi router
Өгөгдлийн сан PostgreSQLjackc/pgx (pgxpool), гар бичмэл SQL
Кэш / session Redis
Архитектур Clean Architecture — handler → usecase → repository → domain

ORM яагаад байхгүй вэ?

Өгөгдлийн давхарга нь pgx дээр гар бичмэл SQL-ээр бичигддэг. Шалтгаан нь: Postgres Row-Level Security (RLS), CTE, LISTEN/NOTIFY, JSONB зэрэг тухайн санд гүн шингэсэн боломжуудыг ORM-ийн хийсвэрлэл дундуур биш, шууд ашиглах; үүсэх query-г урьдчилан тааварлах шаардлагагүй болгох.

Clean Architecture-ийн хатуу дүрэм: back-import байхгүй. Бизнес цөм (domain, usecase) нь web framework-ийг хэзээ ч import хийхгүй. Энэ нь HTTP давхаргыг солиход бизнес логик хөндөгдөхгүй байхыг баталгаажуулна.

Frontend

Бүрэлдэхүүн Сонголт
Framework Next.js 15/16, App Router
Загвар BFF (Backend-for-Frontend)
Өгөгдлийн давхарга TanStack Query

BFF гэдэг нь юу гэсэн үг вэ: browser нь backend руу шууд ханддаггүй. Зөвхөн ижил домэйн дээрх Next.js route-уудтай ярина; тэдгээр нь server талаас backend руу прокси хийнэ.

Үр дүн: токен client JavaScript-д хэзээ ч хүрэхгүй — cookie session ашиглана, XSS нь токен хулгайлах вектор болохоо больдог. Дээрээс нь давхар CSRF хамгаалалт (тусгай header + origin шалгалт).

Mobile ба Desktop

Платформ Технологи
iOS Swift, SPM SDK (GeregeSmartID) + брэнд бүрийн апп
Android Kotlin / Jetpack Compose SDK
macOS SwiftUI RP client + USB token kit
Windows MSIX (гарын үсэгтэй)
Web RP TypeScript SDK

AI pipeline

Gemini дээр суурилсан, SDK-гүй REST client + function calling:

  • текст ба дуут чат,
  • STT (яриа → текст) ба TTS (текст → яриа),
  • шууд орчуулга,
  • pgvector мэдлэгийн сан — код болон баримтаас индексжүүлсэн,
  • хэрэглэгчийн хэлээр хариулна; login шаардахгүй chat widget.

Давхаргат system prompt: кодод хатуу суулгасан суурь дүрэм (guardrail) + админаас DB-ээр тохируулдаг хамрах хүрээ/заавар. Ингэснээр туслах нь зөвхөн заасан хүрээндээ барина. search_knowledge tool нь хариултыг мэдлэгийн сангийн бодит өгөгдөлд тулгуурлуулж, зохиомол хариулт өгөхөөс сэргийлнэ.

Крипто

Гарын үсгийн код нь Java/Spring эх системээс порт хийгдсэн тул wire түвшинд хоорондоо бүрэн нийцтэй байх ёстой. Үүнийг frozen golden vectors-оор түгжсэн:

  • compressed SEC1 EC point сериалчлал,
  • Java BigInteger.toByteArray() семантик (тэмдэгт байтын зан төлөв).

Go сервер, iOS SDK, Android SDK гурвуулаа byte-identical үр дүн гаргах ёстой.

Golden vector-ийг бүү устга

golden.json файлуудыг дахин үүсгэх боломжгүй. Тэдгээр нь эх системтэй нийцтэй байдлыг нотлох цорын ганц арга. Крипто кодод өөрчлөлт оруулахдаа заавал эдгээр тестээр шалгана.

Дэд бүтэц

Бүрэлдэхүүн Сонголт
Контейнер Docker Compose
CI/CD GitHub Actions (self-hosted Windows/macOS runner-үүдтэй)
Edge nginx — TLS termination, rate limit, reverse proxy
Гэрчилгээ Let's Encrypt (certbot, webroot)
Баримт MkDocs Material + mkdocs-static-i18n, олон хэлээр

Дэлгэрэнгүйг Байршуулалт ба CI/CD хуудаснаас үзнэ үү.

Ажиглалт (observability)

  • OpenTelemetry — тархсан trace,
  • Prometheus — метрик (/metrics),
  • Zap — структурт лог,
  • Audit log — hash-chain холбоост, зөвхөн-нэмэх бүртгэл; зөвхөн админ уншина, бүрэн бүтэн байдлыг шалгах боломжтой.

Production-д хаалттай

/metrics ба /swagger нь production-д bearer token-оор хаалттай. Эдгээр нь дотоод бүтцийг ил гаргадаг тул нээлттэй үлдээх нь мэдээлэл алдагдуулах эрсдэл.

Тест

  • Unit тест — бизнес логик давхаргад,
  • testcontainers интеграц тест — бодит PostgreSQL/Redis-тэй,
  • golden vector тест — крипто нийцтэй байдалд.