ssm.ro Docs
Introducere

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:

ActorRol platformăAcțiuni în platformă
AngajatorSuper UtilizatorAdministrează contul comercial și organizațiile; elaborează documente; primește notificări și rapoarte
H.R.UtilizatorGestionează documentația de personal; integrare prin API
Serviciu Intern SSMUtilizatorElaborează și monitorizează documentele SSM intern
Serviciu Extern SSMUtilizatorElaborează și monitorizează documentele SSM extern (firme de prestări servicii)
Conducător Loc de MuncăAngajatVerifică și semnează documente; nu gestionează
AngajatAngajatPrimește instruiri, semnează documente, primește notificări
Audit/Control— (read-only)Acces control la documentație (read-only)
Arhiva Electronică a beneficiaruluiExport zilnic al documentelor semnate prin API
Furnizor Semnătură ElectronicăServiciu externUtilizat 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 activ

Platforma Aplicației (Heroku)

ComponentăDetalii
Web dynosAplicație web, autoscaling; autentificare: email + parolă; 2FA TOTP opțional; SSO OIDC per organizație (opțional sau exclusiv)
Worker DynoJoburi asincrone: orchestrare semnare, notificări, export zilnic arhivă
Heroku PostgresBaza 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 RedisCache + 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:

ServiciuRol
AWS S3 — PrimaryStocare conținut documente; versioning activat; SSE; Block-public-access ON; lifecycle delete markers 100 zile
AWS S3 — CRR ReplicaReplică cross-region; doar backup/DR; nicio aplicație nu citește/scrie direct
AWS API GatewayProxy pentru microservicii Lambda; autentificare, throttling, logging
AWS LambdaFuncții microservicii stateless (IAM-scoped)
AWS CloudWatch LogsJurnal audit semnări (append-only, criptat, retenție 5 ani)

Furnizori Externi de Încredere

FurnizorRol
PostmarkEmail 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 RelicLogs live + APM; alerte pe rate de erori; SaaS
SentryMonitorizare 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 click

Arhitectura 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:

ServiciuRol
AWS S3Stocare conținut documente (primary + CRR replica)
AWS ECSContainere pentru aplicație și joburi asincrone
AWS API GatewayRute API; autentificare/autorizare cereri; throttling
AWS LambdaFuncții de procesare stateless; IAM-scoped
AWS SESEmail tranzacțional (notificări, OTP, alerte sistem)
AWS CloudWatch LogsJurnal de audit semnări (retenție 5 ani; append-only; criptat)

Fluxuri de Date — Model Partajat

#Flux
1Angajați ↔ Aplicație SSM.ro: autentificare, vizualizare documente, semnare
2Administratori ↔ Aplicație SSM.ro: autentificare, introducere date, upload documente
3Aplicație ↔ Heroku Postgres: utilizatori, angajați, metadate documente, log-uri activitate (3 luni)
4Aplicație ↔ AWS S3 (primary): conținut documente (upload, retrieval)
5Aplicație → Furnizor Semnătură Electronică: de regulă doar hash-ul documentului; integral dacă furnizorul impune transmiterea documentului complet
6Furnizor Semnătură Electronică → Aplicație: semnătură digitală returnată
7Aplicație → Postmark: email-uri tranzacționale (notificări, OTP, alerte sistem)
8Aplicație → Arhivă externă tenant: export zilnic documente la destinația aleasă de tenant
9S3 (primary) → S3 (CRR Replica): replicare managed pentru backup/DR
10Postgres → Backup-uri Heroku: PITR continuu + snapshot-uri zilnice, retenție 30 zile
11Aplicație → New Relic / Sentry: loguri aplicație live și evenimente de eroare
12Aplicație → AWS CloudWatch Logs: eveniment de audit generat la fiecare semnare electronică

Fluxul de Semnare

Cazul standard (hash-based, privacy-preserving):

  1. Documentul este hash-uit local în aplicație
  2. Doar hash-ul este trimis la furnizorul de semnătură electronică prin HTTPS (mTLS sau API token)
  3. Furnizorul returnează semnătura digitală (hash-ul semnat)
  4. 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