انتقل إلى المحتوى

Gerege Template Platform

Production · الطبقة 3 — أساس المنصّة · المستودع: template-gerege-mn · open.gerege.mn

أساس بناء الخدمات الرقمية. وهي ليست شيفرة توضيحية، بل منصّة كاملة جاهزة للإنتاج، مُحكَمة أمنيًا ومُختبَرة. ومنها تفرّع معظم منتجات المنظومة.

الأساس الخَلَف هو Gerege Nexus

في آب/أغسطس 2026 ظهر الجيل الثاني من أساس المنصّة: Gerege Nexus، وهو وحدة متراصّة معيارية مزوّدة بمتجر تطبيقات. وبدل تفريع القالب، يُكتب المنتج الجديد اليوم بوصفه وحدة في Nexus — أو، إن كان علامةً تجارية، تفريعًا للمصدر الأعلى. ويبقى القالب في الإنتاج، غير أنّك إن كنت تبدأ مشروعًا جديدًا فانظر أولًا في Gerege Nexus.

open.gerege.mn غير قابل للوصول حتى 2026-08-07 — إذ صار ذلك المضيف يقدّم شهادة nexus.gerege.mn، فيفشل HTTPS بعدم تطابق الاسم. راجع خريطة النطاقات.

الفكرة الجوهرية

لا ينبغي لأي خدمة جديدة أن تعيد حلّ الهوية والأمان ونموذج الصلاحيات والتدقيق والذكاء الاصطناعي. فكل ذلك يأتي جاهزًا من اليوم الأول؛ ولا يضيف المطوّر سوى منطق مجاله هو.

أنت تبني القيمة، لا البنية التحتية.

ما يأتي جاهزًا في الداخل

المصادقة والجلسات

  • الدخول بـ eID — رمز QR / رابط عميق / إشعار برقم السجل (جلسة long-poll).
  • Google OAuth — ربط ثانوي؛ ويُشترط في المرة الأولى التحقّق بـ eID.
  • JWT access + refresh (بتجديد دوري)؛ وتسجيل الخروج يُبطلهما معًا.
  • لا كلمات مرور، ولا دخول بالبريد أو برمز OTP.

الصلاحيات والجهات

  • RBAC — أدوار ديناميكية مع كتالوج صلاحيات؛ ونموذج من أربع مراتب (superadmin → admin → manager → user).
  • المشرف الأعلى حساب منفصل محميّ بمصادقة متعدّدة العوامل — يُنشأ عبر معالج تهيئة (قائمة سماح للدعوات ← Google ← eID ← رمز OTP بالبريد ← TOTP + رموز استرداد). ويُخزَّن في جدول خاص، فيمكن للشخص الواحد أن يكون مشرف eID ومشرفًا أعلى عبر Google في الوقت نفسه.
  • الجهات والعضويات — الإنشاء والبحث (بالاستعلام من السجل الحكومي عبر Gerege Verify)، وإدارة الأعضاء والصلاحيات، والكل محميّ بـ RLS لكل مستخدم على حدة.

سطح الخدمات

  • بوّابة خدمات حكومية — كتالوج الخدمات والطلبات والاستعلامات والإشعارات والمدفوعات وحجز المواعيد.
  • بوابة API — services / routes / consumers / مفاتيح API / policy يديرها المشرف، مع قياس للطلبات عن بُعد.
  • توقيع المستندات (PAdES) — عبر G-Sign.
  • تكاملات مع أطراف ثالثة — ربط Google Drive/Meet وDropbox، مع تخزين الرموز مشفَّرةً بـ AES-256-GCM. وكذلك تخزين SFTP خاص بالتطبيق.

الذكاء الاصطناعي

  • مسار Gemini — محادثة نصّية وصوتية، وSTT، وTTS، وترجمة فورية.
  • موجّه نظام متعدّد الطبقات — ضوابط مثبَّتة في الشيفرة، مع نطاقٍ يضبطه المشرف عبر قاعدة البيانات.
  • أداة search_knowledge — تُرسي الإجابات على بيانات حقيقية من قاعدة المعرفة.

الأمان وقابلية الملاحظة

  • ترويسات أمنية صارمة (CSP وHSTS وCOOP/COEP/CORP)، وقائمة سماح لـ CORS، وتحديد للمعدّل، ومُدد انتهاء لخادم HTTP.
  • استعلامات مُمَعلَمة؛ وRLS في Postgres مع حارس تحقّق من التطبيق عند الإقلاع.
  • سجل تدقيق — مترابط بسلسلة تجزئة، للإضافة فقط.
  • OpenTelemetry + Prometheus + Zap.

للتفاصيل راجع الأمان.

البنية

template-gerege-mn/
├── backend/     # Go · chi (net/http) · pgx (pgxpool) · PostgreSQL · Redis
│   └── docs/    # ARCHITECTURE · DEVELOPMENT · API_CONTRACT · SECURITY (EN/MN)
├── frontend/    # Next.js BFF — proxy from the server side, cookie sessions
└── ios/         # SwiftUI eID client (GeregeSmartID SDK)

تتّبع الواجهة الخلفية معمارية Clean Architecture — ‏handler → usecase → repository → domain، وبلا استيراد عكسي. فنواة الأعمال لا تستورد إطار عمل ويب.

الأصل والترخيص

الواجهة الخلفية مشتقّة من المشروع المفتوح snykk/go-rest-boilerplate (‏MIT، ‏Najib Fikri). وقد حُوِّلت طبقة HTTP من Gin إلى chi (net/http)، وطبقة البيانات من sqlx إلى pgx (‏pgxpool، وSQL يدوي). ونسبةُ المشروع الأصلي محفوظة في ملف AUTHORS. والمشروع مرخَّص بـرخصة MIT.

النُّسَخ

النسخة الحزمة التقنية المستودع
Gerege Template Platform ‏Go + Next.js template-gerege-mn
Government Template Platform V3.0 ‏Go + Next.js template-dgov-mn
Government Template — إصدار Node.js ‏Node.js/TS + React template-dgov-mn-nodejs

ونسخة Node.js نقلٌ لنسخة Go — ‏Express 5 · pg · RLS + React. ولا يزال العمل على استقرارها جاريًا.

المنتجات المتفرّعة من هنا

الكود المشترك والمزامنة التلقائية

توجد قدرات الخلفية المشتركة في open-gerege-core، وقدرات الواجهة في @gerege/ui-core. تنقل مزامنة git اليومية تغييرات القالب وتفتح PR أو issue عند وجود تعارض.

الوثائق التفصيلية

توجد مستندات ARCHITECTURE وDEVELOPMENT وAPI_CONTRACT وSECURITY في مجلّد backend/docs/ بمستودع template-gerege-mn، بالمنغولية والإنجليزية.