Manual de utilizare

Portal Semafor DSA — monitorizarea conformării Furnizorilor de Servicii Intermediare (FSI) cu Regulamentul (UE) 2022/2065 (Digital Services Act).

1. Introducere

Digital Services Coordinator (DSC) România folosește acest portal pentru:

  • inventarul Furnizorilor de Servicii Intermediare (FSI) activi pe piața RO;
  • evaluarea conformării fiecărui FSI cu obligațiile DSA;
  • vizualizarea rapidă a gradului de conformare prin 🟢 Verde 🟡 Galben 🔴 Roșu;
  • colaborarea controlată cu FSI prin split-view: DSC vede tot, FSI vede doar propria fișă și completează partea dreaptă.

Portalul nu este public. Accesul intern (DSC) și extern (FSI) se face prin autentificare.

2. Roluri și acces

RolDrepturi
DSC Admin CRUD complet. Gestionează nomenclatoare (categorii FSI, criterii DSA, ponderi semafor), utilizatori și texte explicative pentru FSI.
DSC Evaluator Adaugă / editează FSI, completează evaluarea internă pe criterii, validează input FSI, marchează fișa „Evaluare finalizată". Nu poate șterge FSI.
FSI User Vede doar propriul FSI. Read-only pe coloana DSC. Editează doar coloana din dreapta (text, URL, fișier).

Reguli transversale: separare strictă (FSI nu vede alți FSI); audit log nemodificabil pe toate scrierile; rate limiting pe login (5 încercări → 1h cooldown).

3. Cum funcționează semaforul

Algoritm hibrid în 3 pași, calculat automat la fiecare salvare:

  1. Fail-fast P0: dacă oricare criteriu marcat P0 aplicabil este Neconform🔴 Roșu automat.
    P0 implicite: Art. 11 (punct contact autorități), Art. 14 (TOS publicat), Art. 16 (notice & action — hosting), Art. 20 (sistem plângeri — LOP), Art. 30 (trasabilitate comercianți — marketplace).
  2. Scor ponderat: dacă P0 OK, calculăm media ponderată după ponderea criteriului și a domeniului.
    Conform = 1.0, Parțial = 0.5, Neconform = 0.0, N-A = exclus din numitor.
  3. Praguri: 🟢 Verde ≥ 80 🟡 Galben 50–79 🔴 Roșu < 50
  4. Override galben: dacă FSI a trimis input nou nevalidat încă (has_new_fsi_data=TRUE), semaforul rămâne pe 🟡 până la validare DSC.
Criteriile inaplicabile (ex. Art. 30 pentru un FSI care nu e marketplace, Art. 15 pentru un SME) sunt automate N-A și excluse din calcul.

4. Ghid pentru DSC

4.1 Configurare inițială (DSC Admin)

  1. În Django Admin, configurează categorii FSI, criterii DSA și ponderi.
  2. Import categorii din Excel: docker-compose exec web python manage.py import_categories
  3. Seed criterii DSA standard: docker-compose exec web python manage.py seed_criteria

4.2 Adăugare FSI

  1. Mergi la Dashboard DSC → butonul + Adaugă FSI.
  2. Completează datele de identificare și flag-urile:
    • SME — sub 50 angajați și sub 10 mil. EUR cifră de afaceri
    • LOP — platformă online (activează Art. 20–28)
    • Marketplace — permite contracte la distanță (Art. 30–32)
    • VLOP/VLOSE — foarte mari, obligații suplimentare
  3. În Admin, adaugă contacte interne invizibile FSI (evaluator de contact, observații).

4.3 Trimitere invitație FSI

  1. Admin → Invitații FSIAdd.
  2. Selectezi FSI și pui emailul destinatar. Token-ul + email-ul se generează automat.
  3. FSI primește un link de tip /accounts/invite/<token>/ valabil 7 zile, își setează parola și e logat direct.

4.4 Evaluare FSI

  1. Din dashboard, deschide fișa unui FSI (link Detalii).
  2. În split-view, pentru fiecare criteriu:
    • stânga = textul criteriului + descrierea DSC
    • mijloc = răspunsul FSI (read-only) cu evidențe
    • dreapta = formular DSC (stare + comentariu)
  3. Apasă Salvează evaluările. Scoringul se recalculează automat.
  4. Când FSI a trimis date noi, badge-ul ⚠ input FSI nevalidat apare. După verificare, apasă Salvează & validează input FSI — semaforul iese din override-ul galben.

5. Ghid pentru FSI

  1. Primești pe email un link unic de invitație de la DSC România.
  2. Accesezi link-ul, setezi parolă (min. 10 caractere) și ești logat automat.
  3. Mergi la Portalul FSI:
    • Vezi semaforul propriu, scor, status validare per criteriu.
    • Coloana stângă: textul explicativ DSC + stadiul evaluării.
    • Coloana dreaptă: completează răspunsul tău + URL-uri/fișiere (max 10 MB).
  4. După apăsarea Salvează:
    • DSC primește email automat cu noul tău răspuns;
    • semaforul tău trece pe 🟡 Galben până la validare DSC.
Coloana stângă (DSC) este read-only. Orice tentativă de a o modifica este blocată la nivel de aplicație — nu doar UI.

6. Exporturi

  • Excel cu toți FSI: Descarcă — include scor, semafor, stare evaluare, ultima actualizare DSC și FSI.
  • PDF fișă oficială FSI: /export/fsi/<id>.pdf — arhivă oficială cu ambele coloane (DSC + răspuns FSI), generată cu WeasyPrint.

Doar utilizatorii DSC pot accesa aceste exporturi.

7. Audit & jurnal activitate

  • Audit modificări: orice schimbare pe modele DSC (criterii, FSI, evaluări, submisii) este înregistrată automat via django-simple-history. Acces din Admin → History per înregistrare.
  • Jurnal activitate FSI: login / logout / view / edit / submit / upload sunt logate doar pentru utilizatorii FSI. Vezi jurnal complet în Admin.

8. Glosar

FSI
Furnizor de Servicii Intermediare conform DSA.
DSC
Digital Services Coordinator — autoritatea națională RO pentru DSA.
LOP
Large Online Platform (interpretat aici ca „platformă online" în sens DSA, Art. 20–28).
VLOP / VLOSE
Very Large Online Platform / Search Engine — peste 45 mil. utilizatori activi lunari în UE. Au obligații suplimentare conform DSA.
SME
Small/Medium Enterprise — sub 50 ang. și sub 10 mil. EUR. Anumite obligații DSA (Art. 15, 24) nu se aplică.
P0 / P1 / P2
Priorități criterii. P0 = critic (fail-fast pe roșu), P1 = important, P2 = informativ.
Notice & action
Mecanismul de notificare conținut ilegal (Art. 16 DSA).

9. Întrebări frecvente

Două situații: (a) scorul global este între 50 și 79 — conformare parțială, ne așteptăm la îmbunătățiri; sau (b) FSI a trimis date noi nevalidate de DSC încă — indiferent de scor, semaforul rămâne galben până la validare.

7 zile de la creare. Dacă a expirat, DSC Admin poate genera una nouă sau retrimite emailul (acțiunea „Retrimite emailul de invitație" din admin).

Da, doar DSC Admin, din Admin → Criterii DSA. Poți schimba ponderile, prioritatea (P0/P1/P2), aplicabilitatea (LOP/SME/Marketplace), și textul explicativ care va fi afișat în portalul FSI.

docker-compose exec web python manage.py seed_demo generează 25 FSI realiste, useri DSC + FSI demo, evaluări variate, submisii FSI și activity logs. Adaugă --reset pentru a șterge datele demo înainte de seed.

În Admin → FSI → click pe un FSI → butonul „History" sus-dreapta. Vezi fiecare versiune cu user, timestamp, valoare veche și valoare nouă.

10. Testare & conturi demo

Datele demo sunt generate prin docker-compose exec web python manage.py seed_demo. Mai jos, conturile pre-create pentru a putea testa fiecare flux funcțional. Parola comună pentru toate conturile demo este Demo1234!.

⚠ Conturile demo sunt destinate exclusiv testării pe medii de dezvoltare. În producție, schimbă parolele și șterge userii cu sufix @dsc.ro / @demo.fsi.ro.

10.1 DSC Evaluator

Pentru a testa flux-ul evaluator (creare/editare FSI, evaluare criterii, validare input FSI, exporturi):

EmailNumeParolă
maria.popescu@dsc.ro Maria Popescu Demo1234!
ion.ionescu@dsc.ro Ion Ionescu Demo1234!
ana.dumitrescu@dsc.ro Ana Dumitrescu Demo1234!

Contul DSC Admin nu este publicat aici (vezi CLAUDE.md pentru credențialele de admin demo).

10.2 FSI User

Pentru a testa fluxul FSI (vedere split-view, completare răspunsuri, upload evidențe, declanșare notificare email către DSC). Loghează-te cu orice email de mai jos, parolă Demo1234!:

FSIEmail userTip
eMAGemag@demo.fsi.roMarketplace, VLOP
OLX Româniaolx@demo.fsi.roAnunțuri, LOP
Storia.rostoria@demo.fsi.roImobiliare, Marketplace
Booking.combookingcom@demo.fsi.roTravel, VLOP
Glovo Romaniaglovo@demo.fsi.roLivrare, Marketplace
TikToktiktok@demo.fsi.roVideo sharing, VLOP
Facebookfacebook@demo.fsi.roRețea socială, VLOP
YouTubeyoutube@demo.fsi.roVideo sharing, VLOP
Discorddiscord@demo.fsi.roMesagerie
Redditreddit@demo.fsi.roForum
Pcgarage.ropcgarageo@demo.fsi.roMarketplace SME
Hosterionhosterion@demo.fsi.roHosting SME
Orange Româniaorange@demo.fsi.roTelecom (mere conduit)
Vodafone Româniavodafone@demo.fsi.roTelecom (mere conduit)
Google Searchgoogle@demo.fsi.roSearch, VLOSE
…și încă ~10 (Imobiliare, Tazz, Vola, Cartier, Termene, Instagram, Bing, Wikipedia, Digi, eJobs). Format generic: <slug>@demo.fsi.ro.

10.3 Cum testezi fluxurile principale

  1. Dashboard DSC + semafor: loghează-te cu maria.popescu@dsc.ro/fsi/. Vei vedea 25 FSI cu distribuție 4 Verde / 12 Galben / 9 Roșu.
  2. Fișa FSI cu split-view DSC: din dashboard, click pe orice FSI sau accesează direct /evaluare/fsi/1/. Schimbă o stare (Conform → Neconform pe un P0) și apasă Salvează — semaforul se recalculează imediat (intră ROȘU prin fail-fast).
  3. Portal FSI: logout, apoi login cu emag@demo.fsi.ro/evaluare/portal/. Completează un răspuns și apasă Salvează. Semaforul propriu trece pe GALBEN; DSC primește email automat (vezi în docker-compose logs web backend-ul email console).
  4. Validare DSC: revino la DSC, deschide aceeași fișă FSI, apasă Salvează & validează input FSI. Semaforul iese din override.
  5. Exporturi: Excel cu toți FSI și /export/fsi/<id>.pdf pentru fișa oficială.
  6. Audit & istoric: /admin/audit/fsiactivitylog/ arată activitatea FSI-ilor; pe fiecare entitate Admin ai butonul „History" pentru diff valori vechi/noi.
  7. Invitație FSI: în Admin → Invitații FSI → Add. Generezi invitație nouă pentru un FSI; emailul (afișat în logs) conține link-ul valabil 7 zile.