Rozwiązania · Instytucje i administracja
Sekcje wymagane przez uchwałę rządu, zapisane w kodzie i aktualizowane przez pracownicę lub pracownika — nie dodane na końcu, jak załącznik.
Urząd gminy lub instytucja ma stałą listę obowiązkowych sekcji, obowiązek przejrzystości decyzyjnej oraz pracownicę lub pracownika, który musi opublikować ogłoszenie bez dzwonienia do programisty. Budujemy dokładnie to, z dziennikiem audytu, który usuwa się sam po terminie, oraz z limitem prób uwierzytelnienia.
Już zbudowaneDwie własne platformy, publiczne i możliwe do sprawdzenia dziś. Pierwsza to oficjalna strona internetowa urzędu gminy: Laravel 12 na PHP 8.2 z MySQL 8, 40 szablonami, 32 trasami, 10 migracjami, z treścią redakcyjną zmieniającą się rzadko trzymaną w jednym pliku konfiguracyjnym o długości 1.613 linii oraz z treścią zmieniającą się często w bazie, edytowalną z panelu; uwierzytelnianie w panelu jest ograniczone do 5 żądań na minutę, a dziennik audytu jest usuwany codziennie po 12 miesiącach, z wyraźnym odesłaniem do podstawy prawnej. Nagłówki bezpieczeństwa można odczytać z zewnątrz już teraz. Druga to platforma obywatelska w produkcji, z 65 trasami interfejsu programowania, ponad 50 migracjami, 103 plikami testowymi po stronie serwera i 59 scenariuszami end-to-end, z weryfikacją dostępności w testach. Czego nie wpisujemy do „dostarczone”: interoperacyjności z usługami państwowymi — kod uwierzytelniania federacyjnego i podpisu elektronicznego jest napisany i przetestowany, ale wyłączony, ponieważ brakuje umowy z organem i certyfikatu systemu.
Strony internetowej instytucji publicznej nie ocenia się po wyglądzie, lecz po liście. Uchwała rządu 728/2023 określa, jakie sekcje muszą istnieć: przejrzystość decyzyjna, projekty i decyzje, ogłoszenia, dokumenty, kontakty, budżet. Są obowiązkowe, podlegają weryfikacji i nie podlegają negocjacjom. Dlatego budujemy je od początku jako strukturę, nie dodajemy na końcu — dodane na końcu wychodzą formalne i bezużyteczne, a to widać od razu.
Drugim warunkiem jest coś bardziej praktycznego: instytucja musi móc publikować samodzielnie. Ogłoszenie o przetargu, projekt decyzji poddany konsultacjom, zdjęcie z wydarzenia — jeśli każda rzecz przechodzi przez programistkę lub programistę, informacja publiczna pozostaje na papierze albo w grupie mediów społecznościowych, a strona staje się martwą witryną. Celowo rozdzieliliśmy dwa rodzaje treści: redakcyjna, która zmienia się rzadko — geografia, historia, instytucje, kontakty, budżet — znajduje się w jednym pliku konfiguracyjnym czytanym bezpośrednio przez szablony; ta, która zmienia się często, znajduje się w bazie danych i jest edytowana z panelu.
Trzecim warunkiem jest to, o co nikt nie pyta w specyfikacji: co dzieje się z danymi. Panel administracji publicznej potrzebuje limitu prób uwierzytelnienia — przy szóstym żądaniu w ciągu minuty z tego samego adresu odpowiedź brzmi 429, a to jest objęte testem automatycznym, a nie zakładane. Dziennik audytu zawiera adresy IP, więc jest daną osobową: zaplanowane zadanie czyści go codziennie ze wszystkiego, co starsze niż dwanaście miesięcy, z podstawą prawną zapisaną w komentarzu kodu, a nie w osobnym dokumencie, którego nikt nie otwiera.
I wreszcie część, o której wolimy mówić przed przetargiem: interoperacyjność z usługami rządowymi. Uwierzytelnianie federacyjne i podpis elektroniczny są u nas napisane i przetestowane, ale wyłączone przełącznikiem, ponieważ brakuje umowy z organem oraz certyfikatu systemu — brakuje papieru, nie kodu. Dla rządowej platformy płatności, magistrali interoperacyjności i kabinetu obywatela nie mamy żadnego kodu, w żadnym repozytorium, i zapisujemy to wprost.