Gerege App¶
Production · الطبقة 4 — منتج قطاعي ·
المستودع: gerege-app-mn · geregeapp.mn
خدمات المواطن اليومية في تطبيق واحد. أن يُعرَّف بهويته الإلكترونية، ويحصل على إفادة، ويوقّع عقدًا، ويسدّد رسمًا، ويدير جهته — بلا تطبيقات متعدّدة ولا كلمات مرور متعدّدة ولا طوابير متعدّدة.
الملكية
تملك المنصّةَ وتُشغّلها شركة Gerege App ХХК. وأساسها التقني هو
open-gerege-core، وهو وحدة Go مشتركة مع نسخة Gerege Systems — ومنها ترث طبقات
الهوية والأمان والذكاء الاصطناعي ودعم الخدمة.
ما الذي تحلّه؟¶
يفتح المواطن لكل خدمة تطبيقًا مختلفًا، ويتذكّر كلمة مرور مختلفة، ويُرفق المستندات نفسها مرّةً بعد مرّة. وتسدّ Gerege App هذه الثلاثة معًا:
| السؤال | الجواب |
|---|---|
| من الذي يدخل؟ | مصادقة بـ eID — رمز QR / App2App / إشعار برقم السجل |
| هل يدخل مرّة أخرى؟ | مرّةً واحدة فقط — فالمنصّة نفسها مزوّد OIDC (دخول موحّد) |
| هل تُطلب المستندات نفسها مجدّدًا؟ | سجل الخدمات يكشف مخالفات مبدأ مرّة واحدة فقط |
| أين وصل طلبي؟ | الخط الزمني للطلب + متابعة اتّفاقية مستوى الخدمة في الـ relay |
الإمكانات الرئيسة¶
-
eID + Gerege SSO
طريقة الدخول الوحيدة هي eID؛ فلا كلمات مرور ولا رموز OTP بالبريد. والمنصّة كذلك جهة معتمِدة لدى Gerege SSO.
-
ومزوّد OIDC بدورها
متى ضُبط
OAUTH_ISSUERصارت المنصّة مزوّد الهوية الخاص بها — بشيفرة Go خاصة، وPKCE بنمطS256، وid_tokenبخوارزمية RS256. -
بوّابة الخدمات الحكومية
كتالوج ← طلب ← طابور الموظّف ← قرار ← إفادة ومدفوعات ومواعيد. بآلة حالات تفصل التقدّم عن النتيجة على نمط ZGW.
-
سجل موحّد للخدمات
جواز CPSV-AP، وتاريخ الإصدارات، وكتالوج الأدلّة، وكشف مخالفات مبدأ مرّة واحدة فقط (المبدأ الإستوني).
-
تمرير بين المنصّات
تُوجَّه الطلبات المحدَّدة بأجَل، الواردة من منصّة أعلى، إلى الجهات الأدنى، وتُراقَب اتّفاقية مستوى الخدمة. ويُوقَّع الـ webhook بسرّ كل منصّة.
-
مساعد بالذكاء الاصطناعي (Gemini)
محادثة، وكلام ← نص، ونص ← كلام، وترجمة فورية. وقاعدة معرفة ببحث دلالي عبر pgvector؛ ومحادثة الزائر من دون دخول معزولة على حدة.
وكذلك: توقيع PAdES الإلكتروني مع sign relay، وبوابة API تُدار من لوحة المشرف، وRBAC ومشرف أعلى (مصادقة متعدّدة العوامل بـ TOTP)، والجهات والعضويات، وملف PKI الخاص بـ eID، وربط Google Drive · Dropbox · Google Meet، وتخزين SFTP خاص (Gerege Space)، وواجهة بأربع لغات (mn · en · zh · ru).
الموقع في المنظومة¶
flowchart TD
EID[eID Mongolia<br/>الطبقة 1] --> SSO[Gerege SSO<br/>الطبقة 2]
SSO -->|OIDC RP| APP[Gerege App<br/>الطبقة 4]
SSO -->|eID proxy · sign relay| APP
CORE[(open-gerege-core<br/>الطبقة 3)] -.وحدة الأساس.-> APP
- لا وصول مباشر إلى eID. فخدمات eID المصرّح بها تمرّ عبر وكيل eID في الدخول
الموحّد (
/rp/eidو/rp/eid-org) وعبر sign relay (/rp/sign). - سرّ العميل في الدخول الموحّد. العميل
gerege-app-mnمسجَّل علىsso.gerege.mn، ولا يعيش سرّه هناك إلّا بصيغة تجزئة. - الأساس مشترك. والواجهة الخلفية هي التنفيذ المرجعي لـ
open-gerege-core(main.goنحو ثلاثين سطرًا)، بلا مسارات إضافية خاصة. وتنتشر الرقع الأمنية من نقطة واحدة.
التقنية¶
| الطبقة | الخيار |
|---|---|
| الواجهة الخلفية | Go 1.26 · chi (net/http) · pgx (بلا ORM، وSQL يدوي) |
| البيانات | PostgreSQL 16 + pgvector · Redis 7 |
| الواجهة الأمامية | Next.js 15 (BFF) · TanStack Query |
| الذكاء الاصطناعي | Gemini REST (بلا SDK) — محادثة · STT · TTS · ترجمة |
| قابلية الملاحظة | OpenTelemetry · Prometheus · Zap |
| النشر | Docker Compose + edge nginx، geregeapp.mn |
للتفاصيل راجع حزمة التقنيات.
الأساس الأمني¶
- أمن مستوى الصف في Postgres — تتّصل الواجهة البرمجية بدور ليس
superuser؛ ويتحقّق حارسٌ من هذا الشرط عند الإقلاع. ولجداول
gov_*سياسةٌ مستقلّة خاصة بالموظّفين. - نمط BFF — يبقى الرمز في كوكي httpOnly ولا يصل إلى جافاسكربت المتصفّح أبدًا؛ مع حماية مزدوجة من CSRF (ترويسة مخصّصة + فحص الأصل).
- ميزات تُغلَق عند الفشل — إن غابت بيانات الاعتماد تتوقّف الإمكانية بدل أن تعمل عملًا زائفًا؛ وإن كشف حارسُ الإقلاع مخالفةً رفضت الواجهة البرمجية الإقلاع.
- تدقيق مترابط بالتجزئة — يفحص
/api/v1/audit/verifyسلامة السلسلة.
ولمتطلّبات المنظومة العامة راجع الأمان.
الوثائق التفصيلية¶
توجد الوثائق الكاملة على مستوى التنفيذ — مصفوفة الإمكانات، ومرجع نقاط النهاية، ودليل تشغيل النشر — في موقع مستقل:
| الصفحة | موضوعها |
|---|---|
| مصفوفة الإمكانات | كل وحدة وصلاحياتها وصفحات واجهتها في نظرة واحدة |
| الخدمات الحكومية | دورة الطلب الكاملة وطابور الموظّف |
| سجل الخدمات | جواز CPSV-AP ومخالفات مبدأ «مرّة واحدة فقط» |
| ربط تطبيق (OIDC RP) | خطوات إدخال تطبيقك الخاص |
| مرجع الواجهة البرمجية | جميع نقاط النهاية في جدول واحد |
| النشر | Compose، ومتغيّرات البيئة، وnginx، والتراجع |