GRegistry — Wiki (Registrul Sistemelor Informaționale)
GRegistry (RSI) este sursa unică de adevăr pentru catalogul de sisteme informaționale al platformei GStack (Republica Moldova): ce sisteme există, cine le deține, în ce stare și vizibilitate sunt, ce medii și ce dependențe au. Îl citesc GPortal, GLog, GStorage și GMonitor.
Microserviciu JHipster API-first · Spring Boot · PostgreSQL · OAuth2/OIDC (GSSO) · port 8085 ·
package md.gov.gregistry · ro (nativ) + en · fără Kafka/Elasticsearch.
Conținut
Section titled “Conținut”Pentru toată echipa
Section titled “Pentru toată echipa”- Model de domeniu (
rsi_domain.md) — tipuri, statuturi, vizibilitate, medii, dependențe, furnizori + catalogul-exemplu al celor ~23 sisteme. - Caiet de sarcini (
caiet_de_sarcini.md) — cerințe funcționale (CF) și nefuncționale (CNF), interoperabilitate, livrabile, acceptanță, SLA.
Pentru developeri
Section titled “Pentru developeri”- Design tehnic (
platform_design.md) — context, componente, ER, mașini de stări (publicare, statut sistem, sănătate medii), secvențe și activități. - Schema DB (
db_schema.md) — DDL PostgreSQL, indici, trigger append-only. - Plan de implementare (
IMPLEMENTATION_PLAN.md) — pașii de la JDL la livrare. - Scenarii de test (
test-scenarios.md) — TS-GREGISTRY-01…32. - Decizii de arhitectură (
adr/) — ADR-001…008 (Acceptate).
Surse de adevăr
Section titled “Surse de adevăr”- Model:
../GRegistry.jdl— JDL, sursa de adevăr a modelului. - Design UI:
../GRegistry.dc.html— mock (Dashboard complet).
Quick start (după generarea din JDL)
Section titled “Quick start (după generarea din JDL)”cd gregistry
# Regenerare din JDL (după orice modificare a modelului):jhipster jdl GRegistry.jdl --force
# Backend pe :8085 (host fără Java → container Maven):docker run --rm -it -v "$PWD":/app -w /app maven:3.9-eclipse-temurin-21 ./mvnw
# Servicii dependente (doar Postgres — fără Kafka/ES):docker compose -f src/main/docker/postgresql.yml up -d
# Teste:./mvnw verify # backend (unit + integrare)
# Build de producție:./mvnw -Pprod clean verify && java -jar target/*.jarArhitectura — pe scurt
Section titled “Arhitectura — pe scurt”SPA Angular --HTTPS + OIDC bearer (GSSO)--> web.rest.*Resource (DTO) -> service.*Service (+ *QueryService, JPA Criteria pe entitățile filter) -> service.mapper (MapStruct) -> repository.*Repository -> PostgreSQL- Entitățile nu ies din stratul de servicii (controllerele schimbă DTO).
- Zone API GovStack:
/api/v1/public(consumatori — doar PUBLIC+PUBLISHED),/api/v1/staff,/api/v1/admin(OIDC). Erori RFC 7807./management/health/*,/prometheus. - Tranzițiile de publicare și mutațiile scriu în
RegistryAudit(append-only).
Glosar
Section titled “Glosar”- RSI — Registrul Sistemelor Informaționale (acest sistem).
- InformationSystem — sistemul catalogat;
code= cheia stabilă pentru consumatori. - Provider — instituția/organizația care deține sisteme (STISC, Cancelarie, Esempla…).
- Environment — mediu de rulare (prod/staging/test/dev) cu stare de sănătate.
- SystemDependency — muchie direcțională tipizată:
systemconsumădependsOn. - PublicationRequest — cererea de publicare pe GPortal (DRAFT→…→PUBLISHED).
- RegistryAudit — jurnal inalterabil (append-only) al modificărilor.
- GSSO — Keycloak-ul platformei (OAuth2/OIDC). GPortal — portalul public consumator.
Convenții importante
Section titled “Convenții importante”- JDL = sursa de adevăr. Modelul se schimbă în
GRegistry.jdl, apoi regenerare; editările manuale în cod generat se pierd. - Bilingv deliberat. Nume de domeniu păstrate; plumbing în engleză; i18n în ro + en.
RegistryAuditappend-only — fără UPDATE/DELETE (serviciu + trigger DB).- Publicare = act de guvernanță — prin state machine cu aprobare; doar PUBLIC ajunge public.
- Changelog-uri Liquibase append-only — se adaugă unul nou, nu se editează cele comise.
- Stack minimal — fără Kafka/Elasticsearch (ADR-008).
Status și roadmap
Section titled “Status și roadmap”- Acum: spec + design tehnic + schema + ADR-uri (Acceptate) + plan + scenarii de test = ✅.
Codul JHipster: de generat (vezi
IMPLEMENTATION_PLAN.mdFaza 1). - Următorii pași: generare din JDL → custom code (audit, publicare, zone API, dependențe, OIDC) → frontend → testare pe docker-compose → review → livrare (MR pe branch).
Resurse externe
Section titled “Resurse externe”- GitLab:
git.esempla.systems/govtech/gstack/gregistry - Proces comun:
../../.claude/skills/playbook.md,../../.claude/skills/skill.md - Sistem-frate:
../../saas_interdictii/docs/Home.md