Model de date
Diagramă ER
Section titled “Diagramă ER”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"Entități
Section titled “Entități”| Entitate | Rol | Câmpuri cheie |
|---|---|---|
| Document | nucleul | cod, denumire, format, extensie, dimensiune, storageUri, hashSha256, tipSecuritate, passwordHash, nivelAcces, statut, dataEmiterii, dataExpirarii, arhivatLa, stersLa, textIndexat, etichete, metadate; → proprietar, emitent, incarcatDe, template, organizatie, bucket |
| Organizatie | tenant | cod (unic), denumire, idno, statut, activ |
| Bucket | container logic + stocare | cod, denumire, storageBucket, activ, provider, endpoint, regiune, accessKey, secretKeyEnc (AES); → organizatie |
| BucketAcces | M2M user↔bucket | rol (ADMIN/OPERATOR); → appUser, bucket |
| AppUser | utilizator de business (≠ jhi_user) | username, email, statut, idSecLocal; → client, rol, emitent, organizatie |
| Rol | rol funcțional | cod (unic), denumire, poateScrie, nivelMaxim |
| Client | subiectul documentului | tip, identificator (IDNP/IDNO), nume, prenume, email |
| Emitent | organizație emitentă | denumire, tip, idno, accesGrup |
| PartajareDocument | grant de acces | drept, acordatDe, dataAcordare, dataExpirare; → document, beneficiar (Client), beneficiarOperator (AppUser) |
| CerereAcces | cerere de acces | dreptCerut, statut, dataCerere, motivare, dataSolutionare, solutionatDe; → document, solicitant, solicitantOperator |
| Template | șablon | cod, denumire, format, limba, publicat, continut (HTML); → emitent |
| Conversie | transcriere/OCR | tip, statut, sursaUri, rezultatUri, rezultatMeta, eroare, date; → document, initiatDe |
| SemnaturaDocument | semnătură MSign | semnatar, valoare, secret, statut, dataSemnare; → document |
| EvenimentDocument | jurnal append-only | tip, actor, data, payload; → document |
| VersiuneDocument | istoric conținut | numarVersiune, storageUri (cheie versionată), hashSha256, dimensiune, extensie, format, contentType, tipSecuritate, comentariu, creatDe, creatLa, curenta; → document |
| User (jhi_user) | autentificare JHipster | login, password_hash, authorities |
Enumerări
Section titled “Enumerări”| Enum | Valori |
|---|---|
| NivelAcces | PUBLIC, PERSONAL, SECRET |
| TipSecuritate | STANDARD, HASH, PAROLA, CRIPTAT |
| StatutDocument | ACTIV, ARHIVAT, STERS |
| FormatDocument | PDF, DOCX, DOC, ODT, TXT, RTF, XLSX, JPG, PNG, ALTUL |
| DreptAcces | CITIRE, SCRIERE, CITIRE_SCRIERE |
| StatutCerere | PENDING, APROBATA, RESPINSA |
| TipClient | PF, PJ, ONG, OGOV |
| StatutUser | ACTIV, INACTIV, BLOCAT |
| RolBucket | ADMIN, OPERATOR |
| StatutOrganizatie | ACTIVA, SUSPENDATA, INACTIVA |
| StorageProvider | MINIO, S3 |
| TipConversie | PDF_TO_WORD, WORD_TO_PDF, PDF_TO_TXT, PHOTO_TO_TXT, … |
| StatutConversie | PENDING, PROCESSING, DONE, FAILED |
| StatutSemnatura | IN_ASTEPTARE, VALIDA, INVALIDA |
| TipEvenimentDoc | CREAT, 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/payloadsunt@Lobtext (interogate via ES). Conversia lajsonbfizic 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.