Dosarul PNI Episodul 12
Ce am cerut statului, construit pe cont propriu
În Episodul 8 am scris că platforma se construiește invers față de cum a fost licitată: auditul întâi, registrul al doilea, automatizarea la urmă. Cele două straturi de fundație există acum, rulează și pot fi deschise în browser. Descriem în acest articol ce fac, ce nu fac și ce a însemnat dezvoltarea acestor platforme.
Două platforme instalate pe domeniul deobste.ro. A treia simulează RoEID și se numește Cheia.
De obște e un termen românesc vechi pentru „al comunității, în comun”. Obștea era satul care ținea laolaltă ce nu putea fi al nimănui în parte: pădurea, pășunea, apa. Numele e o declarație de intenție, nu o realizare.
În Episodul 08 am scris că o platformă națională de interoperabilitate nu se construiește ca o aplicație livrată la cheie după 36 de luni, ci ca două sisteme de fundație peste care se așază, ulterior, restul. Stratul întâi: jurnalul accesărilor, ca fiecare interogare a datelor unui cetățean să lase urmă verificabilă. Stratul al doilea: registrul de servicii, ca un funcționar să poată cere date de la altă instituție fără să cunoască sistemele ei.
Un articol care cere statului să construiască ceva are o datorie: să arate că se poate.
Cele două straturi există. Rulează pe deobste.ro și oricine le poate deschide.
Se numesc Cronica și Puntea. Numele nu sunt alese la întâmplare. Cronica e jurnalul: ce a făcut statul cu datele tale, însemnat pe rând, ca într-un letopiseț. Puntea e legătura dintre două instituții, de la un mal la celălalt, drumul pe care circulă datele.
La capătul punții stă vestita adeverință.
Adeverința e felul în care statul român rezolvă azi problema. O instituție are nevoie de o informație pe care o deține altă instituție. Soluția găsită: te trimite pe tine să o aduci. Te duci, stai la coadă, plătești un tarif, primești o hârtie, o duci înapoi. Ai fost, preț de o dimineață, cablul dintre două instituții ale aceluiași stat.
Puntea face drumul acela în locul tău. Cronica scrie că l-a făcut: cine a întrebat, ce a întrebat și de ce, ca să poți citi tu.
Declarația de interes
Platformele descrise mai jos sunt construite de autorul acestui articol.
Magistrala și-a construit autoritatea pe distanța față de interesul comercial, iar un episod care descrie un proiect al propriului autor consumă din capitalul ăla. Explicit:
- Nu se vinde nimic. Nu există contract, ofertă sau discuție cu vreo instituție publică.
- Nu se cer bani, nu există formular de donație, nu există companie în spatele lor.
- Toate instituțiile, persoanele și datele din ele sunt inventate. Nu e imitat nimeni real.
- Codul poate fi pus la dispoziție sub licență deschisă, la cererea oficială a statului român.
Ce este „De Obște”
Platforma are patru servicii publice și unul demonstrativ:
- Puntea, locul unde funcționarii publici interoghează serviciile publicate de instituții. Ține administrarea de servicii, procese, scopuri și politici, plus registrul public al serviciilor, care se citește fără cont.
- Cronica, jurnalul. Se scrie doar la capăt, niciodată peste ce e deja scris, iar fiecare înregistrare poartă amprenta celei dinaintea ei, ca o ștergere să se vadă. Cetățeanul își vede aici propriile accese.
- Cheia, identitatea. Un singur cont pentru toate serviciile, echivalentul demonstrativ al MPass moldovenesc.
- in, vitrina. Adresa ei,
in.deobste.ro, se citește dintr-o bucată: „îndeobște”, adică de obicei, în mod obișnuit, în general. Pur explicativă, fără cont și fără date.
Plus un furnizor demonstrativ, care joacă rolul instituției interogate.
Miza nu e codul de integrare. Acela există în multe locuri și nu e greu. Miza e guvernanța: nicio interogare fără proces și fără scop declarat, minimizarea datelor livrate, jurnal inteligibil pentru cetățean.
Cum funcționează de la un capăt la altul
Fluxul demonstrativ leagă două instituții ipotetice: Agenția de Evidența Populației, care publică un serviciu, și Agenția pentru Protecție Socială, care îl consumă. Pașii sunt aceștia:
- Informaticianul instituției care publică importă contractul tehnic al serviciului, un fișier OpenAPI. Contractul e adus într-un spațiu izolat, verificat, i se calculează o amprentă digitală și se păstrează ca versiune care nu mai poate fi modificată ulterior.
- Operatorul platformei avizează și publică serviciul, global, pentru toate instituțiile. Cine a propus nu poate publica. Sunt două semnături, nu una.
- Un administrator de procese de la instituția care consumă își creează procesul administrativ și scopul, apoi leagă singur o operațiune a serviciului publicat de procesul lui, alegând rolul care are voie și câmpurile de răspuns permise.
- Funcționarul alege procesul și scopul, completează un formular generat automat din contractul tehnic și primește înapoi strict câmpurile pe care politica le permite.
- Fiecare pas ajunge în Cronica.
- Cetățeanul intră pe pagina lui și vede cine i-a cerut datele, când, în ce proces și pentru ce scop.
Punctul 4 e exact ce descria Episodul 08: funcționarul completează un formular pe ecran, fără să cunoască sistemul-sursă. Diferența e că formularul nu e desenat de nimeni. Se generează din contractul tehnic al instituției care publică, așa cum e el.
Ce afli abia când construiești
Partea folositoare nu e că merge. E ce am aflat în timp ce le construiam.
Jurnalul nu e o formalitate. E o condiție. În Episodul 08 scrisesem o frază scurtă: orice cerere trece prin jurnal, fără excepții. Pe hârtie, sună a regulament. În program, devine ceva mult mai aspru: dacă jurnalul nu funcționează, cererea nu se face deloc. Nu se face acum și se scrie mai târziu. Pur și simplu nu se face. Întâi se scrie în jurnal, abia apoi pleacă datele. Altfel datele ar pleca, iar în urma lor n-ar rămâne nimic.
Cine face regula nu o folosește. Regulile spun cine are voie să ceară date. Cel care le scrie este un administrator, iar administratorii nu au voie să ceară nimic. Nu se pot trece nici pe ei înșiși pe listă. Interdicția nu stă doar în ecran, ascunsă din meniu, ci se verifică acolo unde regula se salvează. Diferența pare măruntă. Nu e: un buton ascuns se ocolește ușor, o verificare la salvare nu.
Cetățeanul vede funcția, nu omul. În Episodul 08 scria că funcționarul trebuie să apară după funcție, nu după nume, ca să fie protejat. Așa le-am construit. Regula taie în ambele sensuri: tu vezi instituția, ce a cerut, în ce dosar și de ce, dar nu vezi cine anume a apăsat butonul. Un jurnal cu nume n-ar mai fi transparență. Ar fi expunere.
CNP-ul nu se păstrează. Din el se calculează un fel de amprentă, cu o cheie ținută în altă parte. Se poate verifica dacă două cereri sunt despre aceeași persoană, dar din amprentă nu se poate reface CNP-ul.
Când citești jurnalul, se scrie și asta în jurnal. Altfel, după ce cineva răsfoiește câteva zeci de pagini, jurnalul s-ar umple cu propriile lui căutări.
Niciunul din lucrurile astea nu scrie în caietul de sarcini. Toate apar în a doua zi de lucru.
Ce nu face
Urmează limitele cunoscute ale machetei, așa cum sunt trecute în documentația ei.
- Autentificarea funcționarilor e simulată. Se alege un nume dintr-o listă gata făcută, fără parolă și fără autentificare în doi pași. Într-un sistem real ar fi ROeID. Excepția e cetățeanul, a cărui autentificare e reală, prin legătură trimisă pe e-mail.
- Toate datele sunt inventate. CNP-urile din platformă nu aparțin nimănui și nici măcar nu respectă algoritmul real de validare.
- Nu există criptare reciprocă între servicii. În producție ar fi obligatorie. Aici, serviciile se recunosc printr-o parolă comună.
- Confirmarea periodică semnată a jurnalului nu e implementată. Că jurnalul n-a fost umblat se sprijină pe felul în care e scris, pe lanțul de amprente și pe un program care îl poate verifica din afară, ceea ce e mai puțin decât ar cere o probă în instanță.
- Se acceptă doar OpenAPI 3. Swagger 2.0 se refuză, deși multe specificații publice românești sunt încă acolo. Documentația platformei a susținut până pe 4 august 2026 că merge și 2.0, ceea ce era o promisiune pe care codul nu o ținea. A fost găsită încercând o specificație publică reală și a fost corectată.
- Un singur furnizor demonstrativ. Nu e conectată nicio instituție reală, fiindcă nicio instituție reală nu a fost întrebată.
Ultima limită e cea care contează cel mai mult, așa că merită spusă separat. Partea grea a interoperabilității nu e platforma. E fiecare instituție în parte: inventarul datelor, conectorul peste sistemul vechi, cooperarea furnizorului original, oamenii care trebuie să se obișnuiască. În Episodul 08 era o estimare de 3 până la 9 luni per instituție și rămâne în picioare. Nimic din ce e descris aici nu o scurtează.
Proporția
Caietul de sarcini anulat cerea 33 de milioane de euro și 24 de luni pentru 3.000 de instituții.
Cele două straturi de fundație descrise aici au fost construite între 22 iulie și 4 august 2026. 13 zile, 235 de commit-uri, un singur autor, peste 70.000 de linii de cod și 669 de funcții de test. Cu asistență din partea unui model de limbaj, folosit intens, ceea ce e onest să spun fiindcă fără el cifra ar fi fost alta.
Comparația nu e între lucruri egale și ar fi necinstit să pretind că e. O machetă cu date inventate și o singură instituție de probă nu e o platformă națională cu 3.000 de instituții, cu operare non-stop, cu suport, cu instruire și cu răspundere juridică. Distanța dintre ele e mare și e reală.
Dar ceva tot spune diferența asta de ordin de mărime. Spune că partea despre care se discută cel mai mult în licitații, platforma în sine, e partea ieftină. Iar partea despre care nu se discută aproape deloc, integrarea instituție cu instituție și voința de a fi transparent, e partea scumpă.
Vă întrebați deja care e întrebarea. Nu e de ce costă o platformă 33 de milioane de euro. E asta: din cele 33 de milioane, cât era prevăzut pentru integrarea efectivă a instituțiilor și cât pentru platforma peste care urmau să se integreze?
Caietul anulat aloca bugetul invers.
Licența
Codul acestor platforme nu e, în acest moment, public.
Poziția noastră este că el poate fi pus la dispoziție sub licență deschisă, la cererea oficială a statului român. Nu contra cost, nu prin contract, nu prin procedură de achiziție. La cerere.
Până atunci, platformele se pot folosi, citi și testa, la adresele de mai sus. Ce se vede acolo e tot ce fac.
De reținut
Nu e producție. E dovada că se poate.
Un jurnal al accesărilor și un registru de servicii, cele două lucruri de la care ar trebui să înceapă orice platformă națională de interoperabilitate, se pot ridica repede, cu tehnologii deschise, de puțini oameni. Ce nu se poate ridica repede e restul: instituțiile, conectorii lor și decizia politică de a lăsa jurnalul să fie citit de cetățean.
Aceea a fost mereu partea grea. Nu s-a schimbat nimic.
Drept la replică
Agenția pentru Digitalizarea României și Ministerul Economiei, Digitalizării, Antreprenoriatului și Turismului au drept la replică integrală. Orice comunicare oficială se publică fără editare de fond. Termen de răspuns: nelimitat.
O eventuală cerere oficială privind codul se publică, la fel, integral.
Surse și metodă
- Arhitectura propusă pentru cele două straturi: Episodul 08. Arhitectura deschisă completă: Episodul 05.
- Platformele descrise: in.deobste.ro, puntea.deobste.ro, cronica.deobste.ro, cheia.deobste.ro. Registrul public de servicii, fără cont: puntea.deobste.ro/registru.
- Numele sistemelor informaționale menționate provin din documentația originală de proiect din Republica Moldova.
- Limitările enumerate sunt cele documentate de platformă însăși, nu o selecție făcută pentru acest articol.