Przejdź do treści
megapromotingPorozmawiajmy

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ż zbudowaneDouă 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.

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.

Co obejmuje

Co konkretnie zmienia się w instytucjach i administracji

Obowiązkowe sekcje, zbudowane od początku jako struktura

Przejrzystość decyzyjna, projekty i decyzje, ogłoszenia, dokumenty, kontakty, budżet, plus deklaracja dostępności, informacja o przetwarzaniu danych, sekcja danych otwartych i mapa strony. Zgodność z uchwałą rządu jest zapisana w kodzie — w szablonach i w konfiguracji — a nie tylko zadeklarowana w ofercie.

Dwa rodzaje treści, dwa różne miejsca

To, co zmienia się rzadko — dane o miejscowości, historia, instytucje, skład rady, kontakty, budżet — znajduje się w jednym pliku konfiguracyjnym o 1.613 liniach, odczytywanym bezpośrednio przez szablony; to, co zmienia się często — ogłoszenia, galeria, projekty i decyzje, dokumenty, ustawienia przejrzystości — znajduje się w bazie danych i jest edytowane z panelu. Rozdzielenie nie jest estetyczne: ogranicza do minimum to, co ktoś może zepsuć przez błędną edycję.

Urzędnik publikuje samodzielnie, bez pośrednictwa dewelopera

Panel obejmuje dokładnie te operacje, które wykonuje się co tydzień w urzędzie gminy: nowe ogłoszenie, projekt decyzji poddany konsultacjom, wgrany dokument, kilka zdjęć. Każda czynność administracyjna trafia do tabeli audytu — kto, co, kiedy — ponieważ w instytucji publicznej pytanie „kto to opublikował” prędzej czy później ma odpowiedź, która ma znaczenie.

Limit przy logowaniu, sprawdzany testem

Pięć żądań na minutę z tego samego adresu dla formularza logowania; szóste otrzymuje 429. To nie jest ustawienie, które jedynie deklarujemy: istnieje automatyczny test, który sprawdza dokładny zwrot kodu 429. Różnica między środkiem skonfigurowanym a przetestowanym ujawnia się dopiero wtedy, gdy ktoś zmienia trasę i o niej zapomina.

Nagłówki bezpieczeństwa obecne w rzeczywistej odpowiedzi, nie tylko w konfiguracji

W produkcji są odczytywane z zewnątrz: blokada osadzania w ramce, `nosniff`, ścisła polityka odsyłania, wymuszenie bezpiecznego transportu przez rok wraz z subdomenami, polityka uprawnień wyłączająca geolokalizację, mikrofon i kamerę, a także jawna polityka treści. Sprawdzamy je żądaniem, nie obietnicą.

Minimalizacja danych jako zaplanowane zadanie, z podstawą obok

Dzienniki audytu zawierają adresy IP. Zadanie uruchamia się codziennie i usuwa wszystko starsze niż dwanaście miesięcy, z odesłaniem do podstawy prawnej zapisanym w komentarzu kodu. To różnica między polityką prywatności, która mówi „przechowujemy tak długo, jak jest to konieczne”, a systemem, w którym termin rzeczywiście stosuje się sam.

Dostępność automatycznie weryfikowana przy każdym wdrożeniu

Na platformie obywatelskiej sprawdzanie działa w testach automatycznych według kryteriów WCAG 2.0 A i AA oraz 2.1 A i AA, z linią odniesienia na stronę: każdy nowy problem zatrzymuje dostawę, nawet jeśli ogólny poziom się nie zmienił. Dla instytucji publicznej dostępność nie jest opcją wizerunkową, a deklaracja dostępności nie powstaje bez uruchomienia czegoś.

Dane strukturalne, które mówią maszynie, że jesteś instytucją

Strona główna publikuje dane strukturalne typu instytucja rządowa, z adresem pocztowym. Ma to znaczenie dla sposobu, w jaki instytucja pojawia się w wynikach, oraz dla systemów, które czytają je automatycznie; to także jedna z nielicznych kategorii, dla których dokumentacja wyszukiwarki nadal pokazuje wynik wzbogacony z pytaniami i odpowiedziami — ale „znana i autorytatywna” nie jest polem, które sami zaznaczamy, więc nie sprzedajemy tego jako rezultatu prac.

Czego nie robimy, powiedziane przed przetargiem

Nie deklarujemy jako dostarczonego połączenia z państwową platformą płatniczą, magistralą interoperacyjności ani gabinetem obywatela: nie mamy dla nich kodu w żadnym repozytorium. Logowanie federacyjne i podpis elektroniczny mamy zapisane i przetestowane, ale wyłączone — brakuje umowy z organem i certyfikatu systemu. A hosting na infrastrukturze państwowej, tam gdzie jest obowiązkowy, jest wymogiem proceduralnym, nie opcją techniczną.

Traseul

Jak przechodzi zgłoszenie przez system.

01

Mapujemy wymagania przed projektem

Pierwszym rezultatem jest lista obowiązkowych sekcji dla typu Twojej instytucji oraz ich zgodność z tym, co publikujecie dziś. Stąd widać, czego brakuje, co istnieje tylko na papierze i co jest opublikowane w miejscu, którego nie da się cytować. Projekt przychodzi po liście, nie odwrotnie.

02

Oddzielamy treści redakcyjne od operacyjnych

Rzadko zmieniane trafia do konfiguracji, często zmieniane trafia do bazy, z panelem. Dostarczamy strukturę uzupełnioną rzeczywistymi danymi instytucji — nie tekstem wypełniającym — ponieważ strony instytucji z treścią tymczasową nikt nie może ocenić i zwykle tak pozostają.

03

Wstawiamy bramki: limit uwierzytelniania, audyt, nagłówki, terminy

Limit w formularzu logowania z testem, który go weryfikuje, dziennik audytu z zaplanowanym usuwaniem po terminie, nagłówki bezpieczeństwa sprawdzane z zewnątrz, strona informacyjna o przetwarzaniu danych z wymienionymi podstawami. Dostarczamy wynik weryfikacji, nie tylko konfigurację.

04

Przekazujemy z instruktażem dla osoby publikującej

Przekazujemy repozytorium, dokument uruchomienia i dostęp, plus instruktaż dla osoby, która będzie publikować ogłoszenia. Dostawa nie jest uznana za zakończoną, dopóki urzędnik nie opublikuje samodzielnie ogłoszenia, które pojawi się na stronie.

1Server web cu antete verificate din exterior2aplicație cu rutele publice și panoul3conținut editorial într-un fișier de configurare, conținutoperațional în bază4jurnal de audit cu ștergere programată la 12 luni
4 straturi

Dane

Czego dotykamy, gdzie to leży i jak długo zostaje

Zasady różnią się w zależności od branży. To są te, które mają zastosowanie w instytucjach i administracji.

Treść należy do instytucji; my budujemy strukturę
Dane o miejscowości, składzie rady, kontaktach służbowych i budżecie są dostarczane przez instytucję i pozostają jej własnością. Służbowe numery telefonów i nazwiska urzędniczek i urzędników są publiczne na stronie instytucji, ale nie są przejmowane do materiałów marketingowych — ani przez nas, ani do portfolio.
Dziennik audytu zawiera dane osobowe
Adres IP w dzienniku jest daną osobową. Dlatego ma termin: każdego dnia usuwa się wszystko starsze niż dwanaście miesięcy, z podstawą prawną zapisaną obok kodu. Dziennik zachowuje osobę działającą, jej rolę, typ zdarzenia i to, czy jest wewnętrzne czy publiczne — to rozdzielenie ma znaczenie, gdy część ewidencji trzeba pokazać obywatelowi.
Co się publikuje, a co zostaje w aktach wewnętrznych
Na platformie obywatelskiej elementy identyfikacyjne — na przykład numer rejestracyjny — trafiają do akt dla organu i nigdy nie pojawiają się publicznie; publiczna pozycja jest zaokrąglona; żadne zdjęcie nie trafia na stronę bez rozmycia zatwierdzonego przez człowieka, a osoba redagująca nie jest tą, która zatwierdza. Zasady są ograniczeniami w bazie, a nie instrukcjami dla operatorki lub operatora.
Terminy przechowywania, z opublikowanym obok tekstem
Każdy termin zawiera w tej samej tabeli opublikowany tekst słowo w słowo oraz podstawę prawną — surowa średnia 90 dni, redagowana średnia 3 lata, tożsamość osoby zgłaszającej 3 lata, skany etykiet 12 miesięcy. Funkcja czyszczenia raportuje domyślnie, co usunęłaby; rzeczywiste usunięcie wymaga jawnego argumentu.
Prawa osoby, której dane dotyczą, jako trasy, nie jako adres e-mail
Eksport, usuwanie i ewidencja wniosków istnieją jako funkcje. Instytucja, która otrzymuje wniosek o dostęp, musi być w stanie go spełnić bez ręcznego otwierania bazy danych — inaczej termin prawny upływa w oczekiwaniu na programistkę lub programistę.

Przykład

Termin przechowywania, który stosuje się sam, każdej nocy

Sytuacja

Panel administracyjny strony urzędu gminy prowadzi dziennik audytu: kto publikował, co i kiedy. Dziennik zawiera adresy IP, więc zawiera dane osobowe. Prawie wszystkie takie strony rozwiązują problem jednym zdaniem w polityce prywatności — „przechowujemy dane tak długo, jak to konieczne” — i na tym się kończy.

Co zbudowaliśmy

Zapisaliśmy termin jako zadanie zaplanowane: rutyna uruchamia się codziennie i usuwa z dziennika wszystko starsze niż dwanaście miesięcy, a odniesienie do podstawy prawnej jest zapisane w komentarzu nad kodem. W tym samym etapie ustawiliśmy limit w formularzu logowania — pięć żądań na minutę z tego samego adresu — oraz automatyczny test sprawdzający zwrot kodu 429, aby środek nie zniknął po cichu przy refaktoryzacji.

Co z tego wyszło

Polityka opublikowana i zachowanie systemu mówią to samo, a różnicę można sprawdzić: termin to linia kodu, która działa każdej nocy, nie intencja. Nagłówki bezpieczeństwa można odczytać z zewnątrz jednym żądaniem.

Czego nie mówi ten przypadek

Hosting, artefakty publikacji i konfiguracja serwera pozostają informacją wewnętrzną. A treść — dane o miejscowości, skład rady, budżet — należą do instytucji i są przez nią dostarczane: my zbudowaliśmy strukturę i panel, nie dane.

Pytania

O co pyta ktoś z instytucji i administracji

Które sekcje są obowiązkowe i kto to sprawdza?

Lista wynika z Decyzji Rady Ministrów 728/2023: przejrzystość decyzyjna, projekty i decyzje, ogłoszenia, dokumenty, kontakty, budżet, plus strony o dostępności i o informowaniu o przetwarzaniu danych. Budujemy je jako strukturę od początku. W pracy, do której się odnosimy, zgodność jest zapisana w kodzie — w szablonach i w konfiguracji — a nie tylko zadeklarowana w ofercie.

Czy możemy opublikować ogłoszenie samodzielnie, bez dzwonienia do was?

Tak, i to jest połowa pracy. Ogłoszenia, projekty decyzji, dokumenty i galeria edytuje się z panelu. To, co pozostaje w konfiguracji, to treść, która zmienia się rzadko — historia, geografia, skład rady — właśnie po to, aby rutynowa edycja nie mogła zepsuć struktury.

Kto opublikował ogłoszenie i kiedy — da się to ustalić?

Tak. Każde działanie administracyjne trafia do tabeli audytu, z osobą działającą, rolą, typem zdarzenia i momentem. Dziennik zawiera też adres IP, więc jest danymi osobowymi i ma termin: wszystko starsze niż dwanaście miesięcy usuwa się codziennie.

Co się dzieje, jeśli ktoś próbuje odgadnąć hasło do panelu?

Przy szóstym żądaniu w ciągu minuty z tego samego adresu pojawia się 429. To nie jest deklaracja: test automatyczny sprawdza dokładnie ten kod odpowiedzi. Poza tym nagłówki bezpieczeństwa w rzeczywistej odpowiedzi można odczytać z zewnątrz — zakaz osadzania w ramce, `nosniff`, polityka odsyłaczy, wymuszony bezpieczny transport i jawna polityka treści.

Czy możecie połączyć stronę z uwierzytelnianiem rządowym i podpisem elektronicznym?

Kod jest napisany i przetestowany, ale wyłączony przełącznikiem, a test domyślny sprawdza właśnie, że wyłączony stan niczego nie ujawnia. Brakuje nie kodu: brakuje umowy z organem i certyfikatu systemu. Działająca dziś wersja polega na tym, że obywatelka lub obywatel podpisuje na oficjalnym portalu i wgrywa podpisany dokument z powrotem. Wolimy powiedzieć to przed przetargiem, a nie po.

A płatności do budżetu, przez platformę państwa?

Nie mamy dla niej kodu w żadnym repozytorium — tak samo dla magistrali interoperacyjności i dla gabinetu obywatela. Sprawdziliśmy to wyszukiwaniem pełnego słowa we wszystkich naszych projektach. Gdy instytucja ich potrzebuje, to jest praca integracyjna z własnymi warunkami i własnym harmonogramem uzgodnień, i tak to zapisujemy w ofercie.

Czy strona musi być hostowana na infrastrukturze państwa?

Tam, gdzie jest to obowiązkowe na mocy decyzji rządu, tak, i jest to wymóg proceduralny, a nie wybór techniczny. Traktujemy to tak od początku, bo zmienia sposób publikacji i listę potrzebnych uzgodnień, nie tylko adres serwera.

Jak pokazujecie, że strona jest dostępna?

Z kontrolą uruchamianą w testach automatycznych, według kryteriów WCAG 2.0 A i AA oraz 2.1 A i AA, z linią odniesienia dla każdej strony: każdy nowy problem wstrzymuje publikację. Deklaracja dostępności jest pisana po uruchomieniu kontroli, nie przed — inaczej jest to tekst, który przeczy stronie, na której się znajduje.

Co dzieje się ze zdjęciami przesyłanymi przez obywatelki i obywateli?

Na platformie obywatelskiej surowe zdjęcie pozostaje prywatnym dowodem; publicznie trafia tylko wersja zredagowana, z zachowanym pochodzeniem i z wyraźną zgodą moderatorki lub moderatora, a osoba redagująca nie jest osobą zatwierdzającą. Jeśli stan obrazu staje się niepewny, sprawa jest automatycznie wycofywana z publicznego dostępu. To są ograniczenia w bazie danych, a nie instrukcje dla osoby obsługującej.

Co chcesz, żeby działało lepiej?

Opowiedz nam o swoim procesie. Wspólnie ustalimy, co warto zbudować, co da się połączyć i jak sprawdzimy wynik.

Porozmawiajmy