Gerege App¶
Production · Capa 4 — Producto vertical ·
Repositorio: gerege-app-mn · geregeapp.mn
Los servicios cotidianos del ciudadano en una sola aplicación. Identificarse con su documento electrónico de identidad, obtener un certificado, firmar un contrato, pagar, administrar su organización — sin necesidad de muchas aplicaciones, muchas contraseñas y muchas colas.
Titularidad
La plataforma es propiedad de Gerege App ХХК, que también la explota. Su
base técnica es open-gerege-core, el módulo Go compartido con la variante de
Gerege Systems, del que hereda las capas de identidad, seguridad, IA y
soporte de servicio.
Qué resuelve¶
El ciudadano abre una aplicación distinta para cada servicio, recuerda una contraseña distinta y adjunta una y otra vez los mismos documentos. Gerege App cierra esos tres frentes a la vez:
| Pregunta | Respuesta |
|---|---|
| ¿Quién está entrando? | Autenticación con eID — QR / App2App / push por número de registro |
| ¿Volver a entrar? | Solo una vez: la plataforma es ella misma proveedor OIDC (SSO) |
| ¿Pedir de nuevo los mismos documentos? | El registro de servicios detecta las infracciones del principio once-only |
| ¿Por dónde va mi solicitud? | Cronología de la solicitud + seguimiento del SLA del relay |
Capacidades principales¶
-
eID + Gerege SSO
El único método de acceso es el eID. Sin contraseñas ni OTP por correo. Además, la plataforma es relying party de Gerege SSO.
-
También proveedor OIDC
Cuando se configura
OAUTH_ISSUER, la plataforma pasa a ser su propio proveedor de identidad — código Go propio, PKCES256,id_tokenen RS256. -
Portal de servicios públicos
Catálogo → solicitud → cola del funcionario → resolución → certificado, pago, cita. Máquina de estados que separa el avance del resultado, al estilo de ZGW.
-
Registro unificado de servicios
Pasaporte CPSV-AP, historial de versiones, catálogo de pruebas y detección de infracciones del principio once-only (principio estonio).
-
Relay entre plataformas
Las solicitudes con plazo llegadas de una plataforma superior se encaminan a los organismos inferiores, y se vigila el SLA. El webhook se firma con el secreto propio de cada plataforma.
-
Asistente de IA (Gemini)
Chat, voz → texto, texto → voz, traducción en directo. Base de conocimiento con búsqueda semántica en pgvector; el chat de invitado sin sesión está aislado aparte.
Además: firma electrónica PAdES + sign relay, pasarela de API gestionada desde admin, RBAC + super admin (MFA con TOTP), organizaciones y membresías, perfil de PKI de eID, conexiones con Google Drive · Dropbox · Google Meet, almacenamiento SFTP propio (Gerege Space), interfaz en cuatro idiomas (mn · en · zh · ru).
Lugar en el ecosistema¶
flowchart TD
EID[eID Mongolia<br/>Capa 1] --> SSO[Gerege SSO<br/>Capa 2]
SSO -->|RP de OIDC| APP[Gerege App<br/>Capa 4]
SSO -->|proxy eID · sign relay| APP
CORE[(open-gerege-core<br/>Capa 3)] -.módulo base.-> APP
- Sin acceso directo al eID. Los servicios eID autorizados pasan por el
proxy de eID del SSO (
/rp/eid,/rp/eid-org) y por el sign relay (/rp/sign). - El client secret está en el SSO. El cliente
gerege-app-mnestá registrado ensso.gerege.mn; su secreto vive allí solo en forma de hash. - La base es compartida. El backend es la implementación de referencia de
open-gerege-core(main.go, unas 30 líneas), sin rutas añadidas propias. Los parches de seguridad se propagan desde un único punto.
Tecnología¶
| Capa | Elección |
|---|---|
| Backend | Go 1.26 · chi (net/http) · pgx (sin ORM, SQL a mano) |
| Datos | PostgreSQL 16 + pgvector · Redis 7 |
| Frontend | Next.js 15 (BFF) · TanStack Query |
| IA | Gemini REST (sin SDK) — chat · STT · TTS · traducción |
| Observabilidad | OpenTelemetry · Prometheus · Zap |
| Despliegue | Docker Compose + edge nginx, geregeapp.mn |
Para el detalle, véase Stack tecnológico.
Cimientos de seguridad¶
- Row-Level Security de Postgres — la API se conecta con un rol que no es
superuser; un guard comprueba esa condición en el arranque. Las tablas
gov_*tienen una policy aparte para los funcionarios. - Patrón BFF — el token vive en una cookie httpOnly y nunca llega al JavaScript del navegador; doble protección CSRF (cabecera propia + origin).
- Funciones fail-closed — sin credenciales, la capacidad se apaga en lugar de funcionar en falso; si el guard de arranque detecta una infracción, la API se niega a arrancar.
- Auditoría encadenada por hash —
/api/v1/audit/verifycomprueba la integridad de la cadena.
Para los requisitos comunes del ecosistema, véase Seguridad.
Documentación detallada¶
La documentación completa a nivel de implementación — matriz de capacidades, referencia de endpoints, runbook de despliegue — está en un sitio aparte:
| Página | De qué trata |
|---|---|
| Matriz de capacidades | Cada módulo, sus permisos y sus pantallas de un vistazo |
| Servicios públicos | El ciclo completo de una solicitud, la cola del funcionario |
| Registro de servicios | Pasaporte CPSV-AP, infracciones del once-only |
| Conectar una app (RP de OIDC) | Pasos para autenticar su propia aplicación |
| Referencia de API | Todos los endpoints en una sola tabla |
| Despliegue | Compose, variables de entorno, nginx, rollback |