Securitate, Infrastructură & OperațiuniInfrastructurăHeroku (Model Partajat)
Arhitectura Heroku
Dynos, medii de deployment, pipeline GitHub→Heroku, add-ons Postgres și Redis
Model Partajat (SaaS)
Heroku este platforma de găzduire a modelului Partajat. Modelul Enterprise rulează pe infrastructură AWS dedicată — vezi Modele de Deployment.
Medii de Deployment
Platforma SSM.ro operează trei medii distincte:
| Mediu | URL | Acces | Date |
|---|---|---|---|
| Producție | https://www.appssm.ro | Public — HTTPS (TLS 1.2+) | Date reale de producție |
| Staging | Intern — neexpus public | Restricționat — HTTP Basic Auth la edge; credențiale emise doar personalului autorizat | Exclusiv date de test — niciodată date de producție/clienți |
| Development | Local (workstation dezvoltator) | Doar rețeaua locală a dezvoltatorului — nu este expus pe internet | Date locale de test |
Stagingul nu conține niciodată date de producție sau ale clienților.
Componente Heroku
Web Dynos
- Găzduiesc aplicația web
- Autoscaling configurat
- Autentificare: username + parolă; 2FA TOTP opțional (email sau app authenticator); SSO OIDC per organizație (opțional sau exclusiv)
- Sesiune timeout: 30 de minute de inactivitate
Worker Dynos (Joburi Asincrone)
- Procesare asincronă a joburilor
- Responsabilități: orchestrare semnare documente, trimitere notificări, export zilnic arhivă, sarcini programate
- Coadă de joburi bazată pe Heroku Redis
Heroku Postgres (Managed)
- Baza de date relațională principală, pe plan Heroku Postgres Standard
- TLS în tranzit, criptare la repaus
- Point-in-Time Recovery (PITR) continuu (WAL) + snapshot-uri zilnice cu retenție 30 de zile
- Găzduiește tabelul de log-uri activitate clienți (retenție 3 luni, descărcabil de tenant)
- Continuous Protection activat — permite rollback la un punct specific în timp
Heroku Redis (Managed)
- Cache aplicație + coadă joburi asincrone
- TLS în tranzit
- Privat în rețeaua Heroku (nu accesibil din exterior)
Pipeline Build & Release
Developer → Pull Request pe GitHub
│ review obligatoriu (branch protection pe main)
▼
Merge în branch main
│ webhook declanșat automat
▼
Heroku Build
buildpack rulează → produce release artifact (slug)
│
▼
Heroku Release
rolling restart web dynos + worker dynos
│
▼
Versioned release cu audit log în Heroku Releases
│ rollback cu un click disponibilPatchurile critice urmează același flux pe un calendar expediat.
Backup-uri Postgres — Limite Retenție
Platforma utilizează planul Heroku Postgres Standard, care reține până la 25 de backup-uri manuale.
Pe lângă backup-urile manuale, PITR (Continuous Protection) este activ: orice modificare este backed up continuu, permițând restaurarea la orice punct din ultimele zile.
Controale Transversale Heroku
- Tot traficul inbound: HTTPS/TLS 1.2+ prin Heroku Router cu certificate wildcard Let's Encrypt (gestionate de echipa de suport tehnic)
- Trafic intern (App ↔ Postgres/Redis): rețea privată Heroku, TLS în tranzit
- Secretele: exclusiv în Heroku config vars — nu în codul sursă
- Release-uri versionate cu audit log și rollback disponibil