Izolare strictă
Tipuri: ops, beneficiary, partner. Un beneficiar nu vede obiectele altui tenant.
Accesul efectiv se evaluează pe combinația Tenant + Role + Scope + Permission. Tenant isolation strictă, least privilege, separation of duties, auditability. Orice acțiune write este verificată server-side și lasă audit event.
Catalogul de roluri este definit la nivel de seed și este read-only în v1 — fără editor de roluri, pentru control.
Administratorul complet al aplicației. Singurul cu permisiunea admin și acces la Admin Console: tenants, users, role catalog, assignments, permissions matrix, audit, import, file storage.
Proprietarul operării. Creează & configurează promoții, pornește workflow-uri (Approval, Live Ops), gestionează alerte, închide promoții, capturează lecții. Nu are implicit atlas.manage sau promote_to_atlas.
Acces view-only, limitat la propriul tenant și, ideal, la promoțiile asignate. Rule Corpus complet este hidden. Orice scriere → 403.
view · scopedPromovare lecții, regenerare instantiations, import artefacte, atașare DOC-1 templates. Gestionează corpusul fără a fi OPS Admin.
atlas.manage · promotion.importEditor de doctrină: valorizează lecții, întreține rule corpus, validează promovarea în Atlas. Permisiunea cheie: promote_to_atlas.
Read-only în v1. Verifici, de exemplu, că doar OPS Admin deține permisiunea admin.
| Modul | OPS Admin | OPS Operator | Doctrine Owner | Atlas Manager | Beneficiary Viewer | OPS Auditor |
|---|---|---|---|---|---|---|
| Dashboard | M | V / E | V | V | V scoped | V |
| Intake | M | E | V | — | V scoped | V |
| Configuration | M | E | V / E risc | — | V scoped | V |
| Approval | M | E | A Risk / Doctrine | — | V scoped | V |
| Live Ops | M | E | V | — | V scoped | V |
| Closure | M | E | V / E overrides | — | V scoped | V |
| Learning | M | E | E | V | hidden / limited | V |
| Atlas Inbox | M | V / E | E | M | V scoped limited | V |
| Rule Corpus | M | V | V / E | M | hidden | V |
| Artifacts | M | V / E scoped | V | M | V scoped only | V |
| Admin Console | M | — | — | — | — | — |
Legendă: V view E edit / operate A approve / reject M manage / admin — fără acces
Patru dimensiuni evaluate la fiecare cerere. Server-side. Cu audit event la fiecare scriere.
Tipuri: ops, beneficiary, partner. Un beneficiar nu vede obiectele altui tenant.
System, Workflow, Tenant, Audit. Definite la seed; fără editor de roluri în v1.
Tipuri: global (doar OPS Admin), tenant, promotion, module, artifact.
view · create · edit · delete · assign · approve · reject · start_workflow · resolve · escalate · override · promote_to_atlas · import · export · admin.
Audit-ul nu este negociabil. Sesiunile sunt pe server, cu hash SHA-256 al token-ului în DB.
Fiecare audit event conține userId, tenantId, roleId, permission, objectType, objectId, before/after dacă există, timestamp. Vizibilitate: internal / tenant_visible / public_summary.
GET /api/admin/audit-events — filtrabil pe acțiune. Read-only, fără export/full-text în v1.
Cookie __Host-pg4_session în producție (Secure, doar TLS). Rotație SESSION_SECRET invalidează sesiunile.
Orice user își vede & revocă propriile sesiuni (mai puțin cea curentă — Logout). OPS Admin are revoke individual & revoke-all pentru fiecare user.