gNotify — Registrul de Notificări
gNotify este serviciul de notificări al ecosistemului gStack (Republica Moldova) — o rescriere Java/Spring (JHipster) a serviciului Laravel gnotify_php. Autentifică sisteme externe prin TLS mutual (certificate PFX), le permite să gestioneze șabloane reutilizabile și difuzează cereri notify către canale (email / push / telegram / SMS) × niveluri de prioritate (tier) prin RabbitMQ. Spre deosebire de originalul PHP (fără bază de date), această versiune persistă totul în PostgreSQL — ceea ce rezolvă cele două limitări acceptate ale variantei PHP (statusul pierdut la rotația log-urilor; lipsa unui UI de administrare).
- Admin UI: https://gnotify.gstack.esempla.systems
- Portal cetățean (Registrul Destinatarilor): https://portalgnotify.gstack.esempla.systems
- Cod:
git.esempla.systems/govtech/gstack/saas_gnotify· Sursa de adevăr:gnotify.jdl(+ slice-uri aditive)
Cuprins
Section titled “Cuprins”- Architecture — stack, cele două planuri de autentificare, topologie RabbitMQ, diagrame de secvență
- Data-Model — diagramă ER, entități, enumerări
- Notification-Pipeline — de la
notifyla status: randare, cozi, workeri, agregare - Channels-and-Providers — email/SMS/telegram/push, Furnizori, Web Push VAPID, SES
- Registrul-Destinatarilor — notificare după IDNP/IDNO, grupuri, preferințe, portal
- MNotify-Forwarding — redirecționarea către platforma guvernamentală MNotify
- Security-and-Auth — mTLS PFX vs JWT/Keycloak, scopare pe operator
- API-Reference — toate endpoint-urile (
/api/v1mașină + admin + registry + operator + portal) - Postman-and-Testing — import colecție + fluxuri demo
- Deployment — imagini, compose, edge, cele două aplicații
Concepte cheie
Section titled “Concepte cheie”- Sistem — un sistem extern înregistrat (echivalentul
config.jsondin PHP); se autentifică pe/api/v1/**prin amprenta certificatului client. - Template — șablon per
(sistem, cheie, limbă), cu conținut per canal, randat cu{{variabile}}. - Notificare + Livrare — o cerere
notifycreează oNotificare(cutrackingId) și câte oLivrareper canal; statusul agregat se recalculează din livrări. - EvenimentNotificare — jurnal append-only (CREATED/QUEUED/SENT/FAILED + MNOTIFY_*), analogul log-ului JSON din PHP.
- Registrul Destinatarilor — feature aditiv, activabil prin env: trimite doar IDNP/IDNO, gNotify rezolvă contactele.
Conturi demo
Section titled “Conturi demo”| Cont | Parolă | Rol |
|---|---|---|
admin | admin | administrare completă (UI + /api/admin/**) |
| sistem dev | billing-service | sistem seed pentru /api/v1 (mTLS dezactivat în dev) |
mTLS este ocolit în dev (
application-dev.yml:gnotify.pfx.auth-disabled=true), cu sistemulbilling-serviceși un șabloninvoice-readyseed-uit deDevDataInitializer.