Soluții · Instituții & administrație
Secțiunile pe care le cere hotărârea de guvern, scrise în cod și actualizate de funcționar — nu adăugate la sfârșit, ca anexă.
O primărie sau o instituție are o listă fixă de secțiuni obligatorii, o obligație de transparență decizională și un funcționar care trebuie să publice un anunț fără să sune un programator. Construim exact asta, cu jurnal de audit care se șterge singur la termen și cu limită la încercările de autentificare.
Construit dejaDouă platforme proprii, publice și verificabile azi. Prima e site-ul oficial al unei primării de comună: Laravel 12 pe PHP 8.2 cu MySQL 8, 40 de șabloane, 32 de rute, 10 migrări, cu conținutul editorial care se schimbă rar ținut într-un singur fișier de configurare de 1.613 linii și cu cel care se schimbă des în bază, editabil din panou; autentificarea în panou e limitată la 5 cereri pe minut, iar jurnalul de audit se șterge zilnic după 12 luni, cu trimitere explicită la temeiul legal. Antetele de securitate se pot citi din exterior chiar acum. A doua e o platformă civică în producție, cu 65 de rute de interfață de programare, peste 50 de migrări, 103 fișiere de test pe partea de server și 59 de scenarii capăt-la-capăt, cu verificare de accesibilitate în teste. Ce nu trecem la „livrat”: interoperabilitatea cu serviciile de stat — codul de autentificare federată și de semnătură electronică e scris și testat, dar oprit, pentru că lipsesc contractul cu autoritatea și certificatul de sistem.
Un site de instituție publică nu se judecă după cum arată, ci după o listă. Hotărârea de Guvern 728/2023 stabilește ce secțiuni trebuie să existe: transparență decizională, proiecte și decizii, anunțuri, documente, contacte, buget. Sunt obligatorii, se verifică și nu se negociază. De aceea le construim de la început, ca structură, nu le adăugăm la final — adăugate la sfârșit ies formale și nefolositoare, iar asta se vede imediat.
A doua condiție e mai practică: instituția trebuie să poată publica singură. Un anunț de licitație, un proiect de decizie pus în consultare, o fotografie de la un eveniment — dacă fiecare trece printr-un dezvoltator, informația de interes public rămâne pe hârtie sau pe un grup de rețea socială, iar site-ul devine o vitrină moartă. Am separat intenționat două feluri de conținut: cel editorial care se schimbă rar — geografie, istoric, instituții, contacte, buget — stă într-un singur fișier de configurare citit direct de șabloane; cel care se schimbă des stă în baza de date și se editează din panou.
A treia condiție e cea despre care nu întreabă nimeni în caietul de sarcini: ce se întâmplă cu datele. Un panou de administrare publică are nevoie de limită la încercările de autentificare — la a șasea cerere într-un minut de la aceeași adresă, răspunsul e 429, iar asta e acoperit de un test automat, nu presupus. Jurnalul de audit conține adrese IP, deci e dată personală: o sarcină programată îl curăță zilnic de tot ce e mai vechi de douăsprezece luni, cu temeiul legal scris în comentariul codului, nu într-un document separat pe care nimeni nu îl deschide.
Și, în sfârșit, partea despre care preferăm să vorbim înainte de licitație: interoperabilitatea cu serviciile guvernamentale. Autentificarea federată și semnătura electronică sunt scrise și testate la noi, dar oprite dintr-un comutator, pentru că lipsesc contractul cu autoritatea și certificatul de sistem — lipsește hârtia, nu codul. Pentru platforma de plăți a statului, magistrala de interoperabilitate și cabinetul cetățeanului nu avem niciun cod, în niciun depozit, și scriem asta ca atare.