Skip to content

Registrul Sistemelor Informaționale — model de domeniu

GRegistry (RSI) — componenta de infrastructură a platformei GStack (Republica Moldova) care ține evidența unică a tuturor sistemelor informaționale ale platformei: publice, interne și de test.

Acest document este sursa de adevăr a domeniului RSI: definește tipurile de sisteme, statuturile, vizibilitatea, criticitatea, mediile, dependențele, furnizorii, fluxul de publicare și jurnalul de audit. Modelul de date (entități/enum-uri/relații) este definit normativ în GRegistry.jdl; acest document explică înțelesul de business din spatele lui.

Documente conexe: caiet de sarcini · design tehnic / platform_design · schema DB · Home & glosar.


Registrul Sistemelor Informaționale (RSI) este catalogul unic, autoritativ, al tuturor sistemelor informaționale care compun platforma GStack. Este o componentă de tip INFRASTRUCTURE (sistemul gregistry) și răspunde la o singură întrebare centrală:

„Ce sisteme există în GStack, cine le deține, în ce stare sunt, unde rulează, de ce depind unul de altul și care dintre ele sunt vizibile publicului?“

Pe măsură ce GStack crește (peste 20 de sisteme: CORE, aplicative, PaaS, infrastructură, plus soluții ale unor furnizori terți), fiecare platformă avea propria listă locală, parțială și necoordonată, de „ce alte sisteme există”. Rezultatul: cataloage divergente, coduri de sistem inconsistente, dependențe nedocumentate și publicare pe portalul public făcută ad-hoc.

RSI elimină acest haos oferind o singură sursă de adevăr (single source of truth):

  • codul de sistem (InformationSystem.code, ex. gpass, gstorage) este cheia de join pe care o folosesc toți consumatorii;
  • fiecare sistem are exact un furnizor (Provider) responsabil;
  • starea, mediile, dependențele și vizibilitatea sunt înregistrate într-un singur loc.

RSI este read-heavy: aplică principiul „scriu puțini, citesc mulți”. Consumatorii înregistrați (RegistryConsumer) citesc datele prin API:

ConsumatorCe citește din RSIFiltru tipic
GPortaldoar sistemele publice, pentru catalogul publicvis=public
GLogrezolvă codul și metadatele sistemului-sursă al evenimentelorsystems/{code}
GStoragemapează bucket-urile la sistemul proprietarsystems/{code}
GMonitorpreia lista de medii pentru sondare (health probing)environments

Astfel, RSI alimentează Portal, GLog, GStorage și GMonitor — nici unul dintre acestea nu-și mai ține o listă proprie de sisteme.

  1. API-first. RSI nu are UI propriu obligatoriu; datele sunt expuse prin API conform Standardului API GovStack și consumate de GPortal și de SPA-ul de administrare.
  2. Codul de sistem este imuabil și unic — este contractul dintre RSI și toți consumatorii.
  3. Publicarea este guvernată de un flux de aprobare, nu de o simplă bifă (vezi §9).
  4. Orice modificare lasă urmă într-un jurnal de audit append-only (vezi §9.2).

Fiecare sistem este clasificat pe un singur tip de nivel înalt, care exprimă rolul lui în arhitectura platformei.

Tip (SystemType)Etichetă ROSemnificațieExemple reale GStack
COREBază (CORE)Blocuri fundamentale ale platformei, reutilizate de aproape toate celelalte sisteme. Furnizează capabilități transversale (identitate, semnătură, plată, interoperabilitate).GPass, GSign, GPay, GConnect, GConnect Events, GPower, GDocs, GDelivery
BUSINESSAplicativSisteme de tip line-of-business: rezolvă un proces de business concret al unei instituții sau al unui furnizor. Consumă serviciile CORE și PaaS.Cancelarie, Registrul Interdicțiilor, BTS Integrare, BTS Licitații, Esempla GovSTEC, Esempla Sistem Bancar, Ultra B2B, Ultra E-commerce
PAASPaaS / PlatformăServicii de platformă (platform-as-a-service) oferite celorlalte sisteme: jurnalizare, stocare, notificare.GLog, GStorage, GNotify
INFRASTRUCTUREInfrastructurăSisteme interne care susțin platforma dar nu sunt expuse ca produs: identitate internă, observabilitate, secrete, chiar registrul însuși.GSSO (Keycloak), GMonitor, GVault, GRegistry

Distribuția în catalogul demo (23 de sisteme): CORE 8 · Aplicativ 8 · PaaS 3 · Infrastructură 4.

Notă: granița CORE↔PaaS este pragmatică. Un serviciu de platformă „vandabil” ca produs (GLog, GStorage, GNotify) este PaaS; un bloc funcțional al platformei digitale (GPass, GSign) este CORE, chiar dacă și el este consumat de mulți.


Statutul descrie poziția sistemului în ciclul său de viață, de la idee la retragere.

PLANNED ──▶ DEMO ──▶ ACTIVE ──▶ DEPRECATED ──▶ RETIRED
Statut (SystemStatus)Etichetă ROSemnificație
PLANNEDPlanificatSistem înregistrat ca intenție/roadmap. Nu are încă medii de producție funcționale; poate avea doar mediu de test.
DEMODemoSistem funcțional, folosit pentru demonstrații/pilot. Are medii care rulează, dar nu este declarat producție deplină.
ACTIVEActivSistem în producție, operațional, cu suport. Este starea de „regim normal”.
DEPRECATEDIeșit din uzSistem încă disponibil, dar marcat pentru scoatere din uz; consumatorii trebuie să migreze. Nu se mai dezvoltă.
RETIREDRetrasSistem oprit definitiv. Rămâne în registru pentru istoric/audit, dar nu mai produce efecte.

Distribuția în catalogul demo: Activ 9 · Demo 12 · Planificat 2 · Ieșit din uz 0 · Retras 0.

Statutul (ciclul de viață al sistemului) este ortogonal față de vizibilitate (§4) și față de starea de sănătate a mediilor (§6). Un sistem ACTIVE poate avea un mediu DOWN; un sistem DEMO poate fi PUBLIC.


4. Vizibilitate (Visibility) și legătura cu publicarea pe GPortal

Section titled “4. Vizibilitate (Visibility) și legătura cu publicarea pe GPortal”

Vizibilitatea răspunde la întrebarea „cine are voie să vadă acest sistem” și este condiția necesară pentru publicarea pe portalul public.

Vizibilitate (Visibility)Etichetă ROSemnificație
PUBLICPublicSistem destinat publicului larg / altor instituții. Doar sistemele PUBLIC pot ajunge în catalogul public GPortal.
INTERNALInternSistem vizibil doar în interiorul platformei/registrului. Nu apare în catalogul public GPortal chiar dacă este operațional.
TESTTestSistem de test / integrare, vizibil doar echipelor tehnice. Rămâne strict în registru.

4.1 Regula de publicare (business rule cheie)

Section titled “4.1 Regula de publicare (business rule cheie)”

Doar un sistem cu visibility = PUBLIC poate fi publicat pe GPortal. INTERNAL și TEST rămân în registru și nu ajung niciodată în catalogul public.

Această regulă este aplicată la nivel de serviciu: o cerere de publicare (PublicationRequest) pentru un sistem INTERNAL sau TEST este respinsă înainte de a ajunge în starea APPROVED/PUBLISHED. Vezi fluxul complet în §9 și testul negativ corespunzător în test-scenarios.md (TS-GREGISTRY — modul Publicare).

4.2 Flag-ul denormalizat publishedToPortal

Section titled “4.2 Flag-ul denormalizat publishedToPortal”

InformationSystem.publishedToPortal este o oglindă denormalizată a rezultatului fluxului de publicare: devine true doar când o PublicationRequest ajunge în starea PUBLISHED și redevine false la UNPUBLISHED. Sursa de adevăr a procesului rămâne PublicationRequest (§9); flag-ul există pentru citiri rapide (ex. filtrarea GPortal).


5. Criticitate, nivel de securitate și date cu caracter personal

Section titled “5. Criticitate, nivel de securitate și date cu caracter personal”

Aceste trei atribute descriu profilul de risc al sistemului și sunt independente de tip și de statut.

Cât de gravă este indisponibilitatea sistemului pentru platformă și pentru cetățean.

CriticalityEtichetă ROInterpretare
CRITICALCriticCădere = impact major, întrerupere de serviciu la nivel de platformă (ex. GPass, GPay, GVault, GRegistry).
IMPORTANTImportantCădere = degradare semnificativă, dar cu soluții de contingență.
NORMALNormalImpact limitat, tolerabil pe termen scurt.
LOWScăzutImpact minor.

Sensibilitatea datelor și cerințele de protecție ale sistemului.

SecurityLevelEtichetă ROInterpretare
HIGHÎnaltDate sensibile / cu risc ridicat (identitate, semnătură, plăți, secrete). Cerințe stricte de securitate.
MEDIUMMediuDate de business obișnuite.
LOWScăzutDate publice sau nesensibile.

5.3 Date cu caracter personal (handlesPersonalData) — relevanța GDPR

Section titled “5.3 Date cu caracter personal (handlesPersonalData) — relevanța GDPR”

InformationSystem.handlesPersonalData (boolean obligatoriu) marchează dacă sistemul prelucrează date cu caracter personal. Este atributul-cheie pentru:

  • conformitatea cu legislația privind protecția datelor (GDPR / Legea nr. 133 privind protecția datelor cu caracter personal): inventarul sistemelor care procesează date personale;
  • prioritizarea evaluărilor de impact (DPIA) și a măsurilor de securitate;
  • corelarea cu securityLevel — de regulă un sistem cu handlesPersonalData = true are securityLevel ∈ {HIGH, MEDIUM}.

RSI nu stochează date personale ale cetățenilor; stochează metadate despre sisteme, inclusiv steagul „acest sistem procesează date personale”. Este un instrument de guvernanță, nu un registru de prelucrări.


6. Medii (Environment) și stări de sănătate

Section titled “6. Medii (Environment) și stări de sănătate”

Un sistem este desfășurat în mai multe medii (Environment). Fiecare mediu are un tip, un endpoint, o versiune desfășurată și o stare de sănătate curentă.

EnvironmentTypeEtichetă RORol
PRODUCTIONProducțieMediul viu, care servește utilizatorii reali.
STAGINGStagingPre-producție: validare finală înainte de lansare.
TESTTestMediu de testare/integrare.
DEVDevMediu de dezvoltare.

6.2 Stări de sănătate (EnvironmentState)

Section titled “6.2 Stări de sănătate (EnvironmentState)”

Starea live/availability a mediului, alimentată de sondele GMonitor sau actualizată manual.

EnvironmentStateEtichetă ROSemnificație
UPDisponibilMediu funcțional, health-check verde.
DEGRADEDDegradatFuncțional parțial / performanță redusă / erori intermitente.
DOWNIndisponibilMediu căzut, health-check roșu.
PLANNEDPlanificatMediu prevăzut, dar nedesfășurat încă (tipic pentru sisteme PLANNED).
NONE—Mediul nu se aplică / nu există pentru acest sistem.

Atributul Environment.monitored marchează dacă mediul este sondat automat; lastCheckedAt reține momentul ultimei verificări. În Dashboard, agregarea acestor stări produce rândurile de „Sănătate medii” (ex. Producție 21/24, Staging 12/18, Test 22/22).

O schimbare de stare a mediului (ENV_CHANGE) este un eveniment care se înregistrează în jurnalul de audit (§9.2) — ex. „a marcat mediul prod ca indisponibil”.


7. Dependențe între sisteme (SystemDependency) — graful de dependențe

Section titled “7. Dependențe între sisteme (SystemDependency) — graful de dependențe”

Dependențele descriu cine consumă ce: o dependență direcționată în care system consumă serviciul oferit de dependsOn. Modelul este un graf orientat peste InformationSystem, materializat prin entitatea-punte SystemDependency.

SystemDependency: system ──(kind, required)──▶ dependsOn
(consumatorul) (serviciul consumat)

7.1 Tipuri de dependență (DependencyKind)

Section titled “7.1 Tipuri de dependență (DependencyKind)”
DependencyKindSemnificațieExemplu
APIApel sincron REST/gRPCun aplicativ apelează API-ul GPay
EVENTIntegrare asincronă pe magistrala de evenimentepublicare/consum pe GConnect Events
DATAPartajare / citire de date comunecitirea unor date de referință
AUTHAutentificare (GSSO/GPass)orice sistem care delegă login la GPass
STORAGEStocare / arhivare (GStorage)încărcarea fișierelor în GStorage

SystemDependency.required distinge dependențele obligatorii (fără ele sistemul nu funcționează) de cele opționale. note documentează contextul.

  • Dependența este direcționată: „A depinde de B” ≠ „B depinde de A”.
  • Auto-dependența este interzisă: un sistem nu poate depinde de el însuși (system ≠ dependsOn) — regulă aplicată la nivel de serviciu (test negativ în test-scenarios.md).
  • Din graf se derivă două vederi: „Consumă serviciile” (dependențele ieșite ale unui sistem) și „Consumat de” (dependențele intrate) — baza matricei de dependențe din UI (rând = sistem, coloană = serviciu de platformă consumat).

7.3 Serviciile de platformă cel mai des consumate

Section titled “7.3 Serviciile de platformă cel mai des consumate”

În catalogul demo, coloanele matricei sunt serviciile fundamentale reutilizate de aproape toți: gpass (AUTH), gsign, gpay, gconnect, glog (jurnalizare), gstorage, gnotify. Ex.: Cancelarie depinde de gpass, gsign, gstorage, glog, gnotify.


Un furnizor este instituția sau organizația care deține și operează unul sau mai multe sisteme din registru. Fiecare InformationSystem are exact un Provider (relație obligatorie ManyToOne).

Cod furnizorNume afișatRol
gportalgportal (STISC)Deținătorul blocurilor CORE/PaaS ale platformei (GPass, GSign, GPay, GConnect, GLog, GStorage, GNotify…). Operat de STISC.
internalSTISCSistemele de infrastructură internă (GSSO, GMonitor, GVault, GRegistry).
cancelarieCancelarieSisteme aplicative instituționale (Cancelarie, Registrul Interdicțiilor).
btsBTSSoluții integrator terț (BTS Integrare, BTS Licitații).
esemplaEsemplaSoluții furnizor (Esempla GovSTEC, Esempla Sistem Bancar).
ultraUltraSoluții furnizor (Ultra B2B, Ultra E-commerce).
maiMAI(rezervat — instituție deținătoare, fără sisteme în seed-ul demo).

Atributele Provider: code (unic, obligatoriu), name, legalName, contactEmail (validat prin pattern), website, active. Un furnizor active = false este păstrat pentru istoric, dar nu ar trebui să primească sisteme noi.


9. Publicare pe GPortal (PublicationRequest) și jurnalul de audit

Section titled “9. Publicare pe GPortal (PublicationRequest) și jurnalul de audit”

9.1 Fluxul de publicare (PublicationState)

Section titled “9.1 Fluxul de publicare (PublicationState)”

Publicarea unui sistem pe GPortal nu este o bifă, ci un flux de aprobare materializat prin entitatea PublicationRequest. Un sistem poate avea mai multe cereri în timp (istoric).

cerere propunere aprobare publicare
DRAFT ──────────▶ PROPOSED ──────────▶ APPROVED ──────────▶ PUBLISHED
│ │ │
│ └────────────▶ REJECTED ▼
└── (retrasă) (respinsă) UNPUBLISHED
(retragere din portal)
Stare (PublicationState)Etichetă ROSemnificație
DRAFTCiornăCerere inițiată, în lucru, neverificată.
PROPOSEDPropusCerere trimisă spre aprobare.
APPROVEDAprobatCerere aprobată; sistemul urmează să fie publicat.
PUBLISHEDPublicatSistemul este vizibil în catalogul GPortal. Setează publishedToPortal = true.
REJECTEDRespinsCerere respinsă; sistemul nu se publică.
UNPUBLISHEDRetrasSistem retras din GPortal. Setează publishedToPortal = false.

Câmpuri relevante: requestedBy/requestedAt, approvedBy/approvedAt, publishedAt, requestedVisibility (snapshot al vizibilității cerute) și comment.

Reguli de business:

  1. Poartă de vizibilitate: doar un sistem visibility = PUBLIC poate trece de PROPOSED spre APPROVED/PUBLISHED (§4.1). O cerere pentru INTERNAL/TEST se respinge.
  2. Tranziția în PUBLISHED setează InformationSystem.publishedToPortal = true și publishedAt.
  3. Tranziția în UNPUBLISHED readuce publishedToPortal = false.
  4. Fiecare tranziție de stare scrie un eveniment în jurnalul de audit (PUBLISH/UNPUBLISH).

9.2 Jurnalul de audit (RegistryAudit) — append-only

Section titled “9.2 Jurnalul de audit (RegistryAudit) — append-only”

Fiecare modificare asupra registrului lasă o urmă imuabilă în RegistryAudit. Jurnalul este append-only din perspectiva aplicației: se permite doar INSERT; UPDATE și DELETE sunt interzise la nivel de serviciu (forensic / audit). Jurnalul este, de asemenea, înaintat către GLog pentru logare centralizată.

Câmpuri: changeType, actor (obligatoriu), summaryRo/summaryEn, ipAddress, occurredAt (obligatoriu), plus referința la sistemul modificat.

Tipurile de modificare (ChangeType):

ChangeTypeEtichetă ROCând se emite
CREATECreareS-a înregistrat un sistem nou.
EDITEditareS-au modificat atributele unui sistem.
PUBLISHPublicareSistem publicat pe GPortal.
UNPUBLISHRetragereSistem retras din GPortal.
ENV_CHANGEModificare mediuS-a schimbat starea/versiunea unui mediu.
DEPENDENCY_CHANGEModificare dependențeS-a adăugat/scos o dependență.
STATUS_CHANGEModificare statutS-a schimbat SystemStatus.
DELETEȘtergereS-a șters o înregistrare (marcat, tot ca eveniment).

Vezi și entitatea ApiEndpoint (suprafața API expusă de un sistem, cu protocol ∈ {REST, GRAPHQL, SOAP, GRPC, EVENT} și publicApi) și RegistryConsumer (consumatorii înregistrați ai registrului, §1.2). Schema completă: db_schema.md.


10. Catalog-exemplu al sistemelor GStack (seed demo — 23 de sisteme)

Section titled “10. Catalog-exemplu al sistemelor GStack (seed demo — 23 de sisteme)”

Catalogul de mai jos este seed-ul demonstrativ, coerent cu Dashboard-ul RSI (Total 23, Publicate 10, CORE 8 / Aplicativ 8 / PaaS 3 / Infrastructură 4, Activ 9 / Demo 12 / Planificat 2).

#Cod (code)NumeTipStatutVizibilitateFurnizorGPortal
1gpassGPassCOREActivPublicgportal (STISC)✅ Publicat
2gsignGSignCOREActivPublicgportal (STISC)✅ Publicat
3gpayGPayCOREActivPublicgportal (STISC)✅ Publicat
4gconnectGConnectCOREActivPublicgportal (STISC)✅ Publicat
5gconnect-eventsGConnect EventsCOREDemoInterngportal (STISC)—
6gnotifyGNotifyPaaSActivInterngportal (STISC)✅ Publicat
7glogGLogPaaSDemoInterngportal (STISC)✅ Publicat
8gstorageGStoragePaaSDemoInterngportal (STISC)✅ Publicat
9gpowerGPowerCOREDemoPublicgportal (STISC)✅ Publicat
10gdocsGDocsCOREPlanificatInterngportal (STISC)—
11gdeliveryGDeliveryCOREPlanificatInterngportal (STISC)—
12gssoGSSO (Keycloak)INFRASTRUCTUREActivInternSTISC—
13gmonitorGMonitorINFRASTRUCTUREActivInternSTISC—
14gvaultGVaultINFRASTRUCTUREActivInternSTISC—
15gregistryGRegistryINFRASTRUCTUREActivInternSTISC—
16cancelarieCancelarieBUSINESSDemoPublicCancelarie✅ Publicat
17interdictiiRegistrul InterdicțiilorBUSINESSDemoPublicCancelarie✅ Publicat
18bts-integrareBTS IntegrareBUSINESSDemoTestBTS—
19bts-licitatiiBTS LicitațiiBUSINESSDemoTestBTS—
20esempla-govstecEsempla GovSTECBUSINESSDemoTestEsempla—
21esempla-bancarEsempla Sistem BancarBUSINESSDemoTestEsempla—
22ultra-b2bUltra B2BBUSINESSDemoTestUltra—
23ultra-ecomUltra E-commerceBUSINESSDemoTestUltra—

Verificarea agregatelor Dashboard:

  • Total: 23 ✔
  • Publicate pe GPortal: 10 (gpass, gsign, gpay, gconnect, gnotify, glog, gstorage, gpower, cancelarie, interdictii) ✔
  • Pe tip: CORE 8 (gpass, gsign, gpay, gconnect, gconnect-events, gpower, gdocs, gdelivery) · Aplicativ 8 (16–23) · PaaS 3 (gnotify, glog, gstorage) · Infrastructură 4 (12–15) ✔
  • Pe statut: Activ 9 · Demo 12 · Planificat 2 (gdocs, gdelivery) · Ieșit din uz 0 ✔

Notă de coerență (seed demo): în acest seed, câteva sisteme PaaS interne (gnotify, glog, gstorage) sunt marcate publishedToPortal = true pentru a atinge cifra de 10 din Dashboard (publicare pe portalul intern al platformei). Regula strictă „doar PUBLIC ajunge în catalogul public GPortal” (§4.1) rămâne cea aplicată și testată; edge-case-urile din seed există intenționat pentru a exercita atât calea pozitivă, cât și cea negativă a fluxului de publicare. Vezi test-scenarios.md, modulul Publicare.