Arhitectura Sistemului
Două modele de deployment — Partajat (Heroku + S3) și Enterprise dedicat (AWS); actori, fluxuri de date și controale
Ecosistemul SSM.ro
Platforma SSM.ro conectează toți actorii implicați în managementul SSM al unei organizații:
| Actor | Rol platformă | Acțiuni în platformă |
|---|---|---|
| Angajator | Super Utilizator | Administrează contul comercial și organizațiile; elaborează documente; primește notificări și rapoarte |
| H.R. | Utilizator | Gestionează documentația de personal; integrare prin API |
| Serviciu Intern SSM | Utilizator | Elaborează și monitorizează documentele SSM intern |
| Serviciu Extern SSM | Utilizator | Elaborează și monitorizează documentele SSM extern (firme de prestări servicii) |
| Conducător Loc de Muncă | Angajat | Verifică și semnează documente; nu gestionează |
| Angajat | Angajat | Primește instruiri, semnează documente, primește notificări |
| Audit/Control | — (read-only) | Acces control la documentație (read-only) |
| Arhiva Electronică a beneficiarului | — | Export zilnic al documentelor semnate prin API |
| Furnizor Semnătură Electronică | Serviciu extern | Utilizat de platformă pentru semnarea electronică la distanță a documentelor digitale |
Modele de Deployment
SSM.ro este disponibil în două modele de deployment cu arhitecturi tehnice distincte: Model Partajat (SaaS) și Model Enterprise (Dedicat).
Comparație detaliată
Comparația completă a celor două modele (infrastructură, autentificare, izolarea datelor, SLA) se află pe pagina canonică Modele de Deployment. Mai jos sunt detaliile de arhitectură tehnică pentru fiecare model.
Arhitectura Tehnică — Model Partajat (SaaS)
Model Partajat (SaaS)
Secțiunea descrie arhitectura multi-tenant pe Heroku + AWS S3.
Nivelul Client & Edge
Utilizatori (browser/mobil)
│ HTTPS only
▼
DNS (resolver public)
│
▼
Heroku Router — terminare TLS
Certificate: Let's Encrypt (reînnoire automată)
TLS 1.2+, HSTS activPlatforma Aplicației (Heroku)
| Componentă | Detalii |
|---|---|
| Web dynos | Aplicație web, autoscaling; autentificare: email + parolă; 2FA TOTP opțional; SSO OIDC per organizație (opțional sau exclusiv) |
| Worker Dyno | Joburi asincrone: orchestrare semnare, notificări, export zilnic arhivă |
| Heroku Postgres | Baza de date principală; TLS în tranzit, criptare la repaus; PITR continuu + snapshot-uri zilnice (retenție 30 zile); găzduiește log-urile de activitate ale clienților (3 luni) |
| Heroku Redis | Cache + coadă joburi asincrone; TLS în tranzit; privat în rețeaua Heroku |
Servicii AWS (Model Partajat)
Modelul Partajat utilizează microservicii AWS pentru procesare, stocare și jurnalizare, în cadrul unei infrastructuri partajate:
| Serviciu | Rol |
|---|---|
| AWS S3 — Primary | Stocare conținut documente; versioning activat; SSE; Block-public-access ON; lifecycle delete markers 100 zile |
| AWS S3 — CRR Replica | Replică cross-region; doar backup/DR; nicio aplicație nu citește/scrie direct |
| AWS API Gateway | Proxy pentru microservicii Lambda; autentificare, throttling, logging |
| AWS Lambda | Funcții microservicii stateless (IAM-scoped) |
| AWS CloudWatch Logs | Jurnal audit semnări (append-only, criptat, retenție 5 ani) |
Furnizori Externi de Încredere
| Furnizor | Rol |
|---|---|
| Postmark | Email tranzacțional (notificări, OTP, resetare parolă, alerte sistem); HTTPS API, token de server dedicat |
| Furnizor Semnătură Electronică | Furnizor calificat semnătură electronică (eIDAS QTSP); de regulă primește doar hash-ul documentului și returnează semnătura digitală; anumiți furnizori impun transmiterea documentului integral pentru efectuarea semnării; autentificare HTTPS prin mTLS sau API token |
| New Relic | Logs live + APM; alerte pe rate de erori; SaaS |
| Sentry | Monitorizare excepții runtime; email de alertă; SaaS |
| OIDC IdP (per organizație) | SSO opțional sau exclusiv, per organizație; extern, administrat de client |
Pipeline Build & Release
GitHub (branch main, PR review obligatoriu)
│ webhook la merge
▼
Heroku Build (slug compile, buildpack)
│
▼
Heroku Release (rolling restart web + worker dynos)
│
▼
Versioned releases cu rollback cu un clickArhitectura Tehnică — Model Enterprise (Dedicat)
Model Enterprise (Dedicat)
Secțiunea descrie arhitectura cu infrastructură AWS dedicată per client.
Caracteristici Generale
- Infrastructură dedicată AWS per client — serverele și resursele nu sunt partajate cu alți clienți
- Domeniu propriu al clientului
clientdomain.ext(ex.ssm-companie.ro) — nu subdomeniu pe*.appssm.ro; instalarea poate găzdui una sau mai multe organizații pe subdomenii, cu date separate - White-label complet — logo propriu, date de contact platformă, mesaje email personalizate, anteturi documente; platforma apare sub identitatea vizuală a clientului
- SSO prin SAML — o singură configurare pentru domeniul principal al clientului; autentificarea email/parolă rămâne disponibilă pentru conturile externe; accesul la organizații este gestionat intern prin roluri
- SLA 99,9% disponibilitate lunară garantată; ferestre de mentenanță negociate contractual
Servicii AWS (Model Enterprise)
Modelul Enterprise poate include, conform specificațiilor contractuale:
| Serviciu | Rol |
|---|---|
| AWS S3 | Stocare conținut documente (primary + CRR replica) |
| AWS ECS | Containere pentru aplicație și joburi asincrone |
| AWS API Gateway | Rute API; autentificare/autorizare cereri; throttling |
| AWS Lambda | Funcții de procesare stateless; IAM-scoped |
| AWS SES | Email tranzacțional (notificări, OTP, alerte sistem) |
| AWS CloudWatch Logs | Jurnal de audit semnări (retenție 5 ani; append-only; criptat) |
Fluxuri de Date — Model Partajat
| # | Flux |
|---|---|
| 1 | Angajați ↔ Aplicație SSM.ro: autentificare, vizualizare documente, semnare |
| 2 | Administratori ↔ Aplicație SSM.ro: autentificare, introducere date, upload documente |
| 3 | Aplicație ↔ Heroku Postgres: utilizatori, angajați, metadate documente, log-uri activitate (3 luni) |
| 4 | Aplicație ↔ AWS S3 (primary): conținut documente (upload, retrieval) |
| 5 | Aplicație → Furnizor Semnătură Electronică: de regulă doar hash-ul documentului; integral dacă furnizorul impune transmiterea documentului complet |
| 6 | Furnizor Semnătură Electronică → Aplicație: semnătură digitală returnată |
| 7 | Aplicație → Postmark: email-uri tranzacționale (notificări, OTP, alerte sistem) |
| 8 | Aplicație → Arhivă externă tenant: export zilnic documente la destinația aleasă de tenant |
| 9 | S3 (primary) → S3 (CRR Replica): replicare managed pentru backup/DR |
| 10 | Postgres → Backup-uri Heroku: PITR continuu + snapshot-uri zilnice, retenție 30 zile |
| 11 | Aplicație → New Relic / Sentry: loguri aplicație live și evenimente de eroare |
| 12 | Aplicație → AWS CloudWatch Logs: eveniment de audit generat la fiecare semnare electronică |
Fluxul de Semnare
Cazul standard (hash-based, privacy-preserving):
- Documentul este hash-uit local în aplicație
- Doar hash-ul este trimis la furnizorul de semnătură electronică prin HTTPS (mTLS sau API token)
- Furnizorul returnează semnătura digitală (hash-ul semnat)
- Semnătura este încorporată în documentul PDF de pe platformă
Cazul cu furnizor care impune documentul complet:
Anumiți furnizori de semnătură electronică impun transmiterea documentului integral (nu doar hash-ul) pentru efectuarea semnării. În acest caz, conținutul documentului este transmis furnizorului respectiv și părăsește platforma.
Controale Transversale
Aceste controale se aplică ambelor modele:
- Tot traficul extern: HTTPS/TLS 1.2+ — certificate cu reînnoire automată
- Accesul la serviciile AWS: credențiale IAM cu privilegii minime; secretele nu sunt incluse în codul sursă
- Criptare la repaus: baza de date, cache, S3 (primary + replica)
- Backup & DR: baza de date PITR + snapshot-uri zilnice; AWS S3 versioning + replicare cross-region; rollback release
Modele de Deployment
Comparație între Modelul Partajat (SaaS) și Modelul Enterprise (Dedicat) — infrastructură, autentificare, izolarea datelor și SLA
Servicii Utilizate
Lista completă a serviciilor: Heroku, AWS (S3, Lambda, CloudWatch, SES), Furnizor Semnătură Electronică, Postmark (Partajat), New Relic, Sentry