Skip to content

Model de date

erDiagram
ORGANIZATIE ||--o{ BUCKET : "are"
ORGANIZATIE ||--o{ APPUSER : "membri"
ORGANIZATIE ||--o{ DOCUMENT : "deține"
BUCKET ||--o{ DOCUMENT : "conține"
BUCKET ||--o{ BUCKETACCES : "acces"
APPUSER ||--o{ BUCKETACCES : "asignat"
APPUSER }o--|| ROL : "rol funcțional"
APPUSER }o--o| CLIENT : "cetățean"
APPUSER }o--o| EMITENT : "membru org emitentă"
DOCUMENT }o--|| CLIENT : "proprietar"
DOCUMENT }o--o| EMITENT : "emitent"
DOCUMENT }o--o| APPUSER : "incarcatDe"
DOCUMENT }o--o| TEMPLATE : "template"
DOCUMENT ||--o{ PARTAJAREDOCUMENT : "grant-uri"
DOCUMENT ||--o{ CEREREACCES : "cereri"
DOCUMENT ||--o{ SEMNATURADOCUMENT : "semnături"
DOCUMENT ||--o{ EVENIMENTDOCUMENT : "jurnal (append-only)"
DOCUMENT ||--o{ CONVERSIE : "transcrieri"
PARTAJAREDOCUMENT }o--o| CLIENT : "beneficiar"
PARTAJAREDOCUMENT }o--o| APPUSER : "beneficiarOperator"
TEMPLATE }o--o| EMITENT : "emitent"
EntitateRolCâmpuri cheie
Documentnucleulcod, denumire, format, extensie, dimensiune, storageUri, hashSha256, tipSecuritate, passwordHash, nivelAcces, statut, dataEmiterii, dataExpirarii, arhivatLa, stersLa, textIndexat, etichete, metadate; → proprietar, emitent, incarcatDe, template, organizatie, bucket
Organizatietenantcod (unic), denumire, idno, statut, activ
Bucketcontainer logic + stocarecod, denumire, storageBucket, activ, provider, endpoint, regiune, accessKey, secretKeyEnc (AES); → organizatie
BucketAccesM2M user↔bucketrol (ADMIN/OPERATOR); → appUser, bucket
AppUserutilizator de business (≠ jhi_user)username, email, statut, idSecLocal; → client, rol, emitent, organizatie
Rolrol funcționalcod (unic), denumire, poateScrie, nivelMaxim
Clientsubiectul documentuluitip, identificator (IDNP/IDNO), nume, prenume, email
Emitentorganizație emitentădenumire, tip, idno, accesGrup
PartajareDocumentgrant de accesdrept, acordatDe, dataAcordare, dataExpirare; → document, beneficiar (Client), beneficiarOperator (AppUser)
CerereAccescerere de accesdreptCerut, statut, dataCerere, motivare, dataSolutionare, solutionatDe; → document, solicitant, solicitantOperator
Templateșabloncod, denumire, format, limba, publicat, continut (HTML); → emitent
Conversietranscriere/OCRtip, statut, sursaUri, rezultatUri, rezultatMeta, eroare, date; → document, initiatDe
SemnaturaDocumentsemnătură MSignsemnatar, valoare, secret, statut, dataSemnare; → document
EvenimentDocumentjurnal append-onlytip, actor, data, payload; → document
VersiuneDocumentistoric conținutnumarVersiune, storageUri (cheie versionată), hashSha256, dimensiune, extensie, format, contentType, tipSecuritate, comentariu, creatDe, creatLa, curenta; → document
User (jhi_user)autentificare JHipsterlogin, password_hash, authorities
EnumValori
NivelAccesPUBLIC, PERSONAL, SECRET
TipSecuritateSTANDARD, HASH, PAROLA, CRIPTAT
StatutDocumentACTIV, ARHIVAT, STERS
FormatDocumentPDF, DOCX, DOC, ODT, TXT, RTF, XLSX, JPG, PNG, ALTUL
DreptAccesCITIRE, SCRIERE, CITIRE_SCRIERE
StatutCererePENDING, APROBATA, RESPINSA
TipClientPF, PJ, ONG, OGOV
StatutUserACTIV, INACTIV, BLOCAT
RolBucketADMIN, OPERATOR
StatutOrganizatieACTIVA, SUSPENDATA, INACTIVA
StorageProviderMINIO, S3
TipConversiePDF_TO_WORD, WORD_TO_PDF, PDF_TO_TXT, PHOTO_TO_TXT, …
StatutConversiePENDING, PROCESSING, DONE, FAILED
StatutSemnaturaIN_ASTEPTARE, VALIDA, INVALIDA
TipEvenimentDocCREAT, MODIFICAT, DESCARCAT, PARTAJAT, SEMNAT, ARHIVAT, STERS, RESTAURAT, ACCES_CERUT, ACCES_ACORDAT, ACCES_REFUZAT
  • Secvență partajată: toate tabelele folosesc un singur sequence Hibernate sequence_generator — id-urile sunt intercalate, nu 1..N per entitate.
  • jsonb amânat: etichete/metadate/continut/payload sunt @Lob text (interogate via ES). Conversia la jsonb fizic e un pas de hardening documentat.
  • secretKeyEnc — secretul conexiunii S3/MinIO al bucket-ului e criptat AES (base64) și NU e returnat niciodată de API.