Перейти к содержанию

Gerege Template Platform

Production · Слой 3 — Основа платформы · Репозиторий: template-gerege-mn · open.gerege.mn

Основа для создания цифровых услуг. Это не пример кода, а целая платформа — готовая к production, усиленная по безопасности и покрытая тестами. Большинство продуктов экосистемы выросли отсюда.

Преемник основы — Gerege Nexus

В августе 2026 появилось 2-е поколение платформенной основы: Gerege Nexus — модульный монолит с магазином приложений. Вместо форка шаблона новый продукт теперь пишется как модуль Nexus либо, для бренда, как форк upstream. Template остаётся в production, но если вы начинаете новый проект, сначала посмотрите Gerege Nexus.

open.gerege.mn недоступен по состоянию на 2026-08-07 — этот хост теперь отдаёт сертификат nexus.gerege.mn, поэтому HTTPS падает на несовпадении имени. См. Карту доменов.

Главная идея

Ни одна новая услуга не должна заново решать идентификацию, безопасность, модель прав, аудит и ИИ. Всё это приходит готовым с первого дня; разработчик добавляет только логику своей предметной области.

Вы создаёте ценность, а не инфраструктуру.

Что приходит готовым

Аутентификация и сессии

  • Вход по eID — QR / deep-link / push по номеру реестра (long-poll сессия).
  • Google OAuth — дополнительная привязка; при первом подключении обязательна проверка через eID.
  • JWT access + refresh (ротация); выход обнуляет оба.
  • Паролей нет, входа по email/OTP нет.

Права и организации

  • RBAC — динамические роли плюс каталог прав; четырёхуровневая модель (superadmin → admin → manager → user).
  • Super admin — отдельная учётная запись с MFA — создаётся через onboarding-мастер (allow-list приглашений → Google → eID → OTP по почте → TOTP + коды восстановления). Хранится в отдельной таблице, поэтому один человек может быть и админом по eID, и Google super admin.
  • Организации и членство — создание/поиск (справка из государственного реестра через Gerege Verify), управление участниками и правами; всё защищено RLS для каждого пользователя.

Поверхность услуг

  • Портал государственных услуг — каталог услуг, заявки, справки, уведомления, платежи, запись на приём.
  • API-шлюз — управляемые администратором services / routes / consumers / API key / policy плюс телеметрия запросов.
  • Подпись документов (PAdES) — через G-Sign.
  • Интеграции с третьими сторонами — подключение Google Drive/Meet и Dropbox; токены хранятся зашифрованными по AES-256-GCM. Плюс собственное SFTP-хранилище приложения.

ИИ

  • Конвейер Gemini — текстовый и голосовой чат, STT, TTS, перевод на лету.
  • Слоистый system prompt — guardrail, встроенные в код, плюс область применения, настраиваемая администратором через базу данных.
  • Инструмент search_knowledge — заземляет ответы на реальные данные базы знаний.

Безопасность и наблюдаемость

  • Строгие security-заголовки (CSP, HSTS, COOP/COEP/CORP), allow-list CORS, rate limit, таймауты HTTP-сервера.
  • Параметризованные запросы; Postgres RLS плюс boot-time enforceability guard.
  • Журнал аудита — связанный хеш-цепочкой, только на добавление.
  • 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 — проксирование со стороны сервера, cookie-сессии
└── ios/         # SwiftUI-клиент eID (SDK GeregeSmartID)

Бэкенд следует 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 edition Node.js/TS + React template-dgov-mn-nodejs

Вариант на Node.js — порт версии на Go: Express 5 · pg · RLS + React. Стабилизация продолжается.

Продукты, выросшие отсюда

Общий код и автосинхронизация

Общие возможности backend находятся в open-gerege-core, а frontend — в @gerege/ui-core. Ежедневная git-синхронизация переносит изменения шаблона в продукты и открывает PR или issue при конфликте.

Подробная документация

Документы ARCHITECTURE, DEVELOPMENT, API_CONTRACT и SECURITY находятся в каталоге backend/docs/ репозитория template-gerege-mn, на монгольском и английском.