Opencode.gov.sk (metodický portál pre zverejňovanie zdrojových kódov ISVS)

Ahojte,

na adrese https://opencode.gov.sk môžete nájsť nový metodický portál pre zverejňovanie otvorených zdrojových kódov ISVS, aby boli tieto informácie na jednom mieste. V súčasnosti sú riešené najmä tieto otázky:

1) Dataset zdieľaných otvorených kódov 2022-09-19

Dataset môžete nájsť na metodickom portáli
https://wiki.vicepremier.gov.sk/pages/viewpage.action?pageId=101818838

rovnako aj na portáli data.gov.sk

Tu by som chcel povedať, že toto berte ako prvú verziu tohto datasetu. Predpokladáme že sa určite rozšíri, v súčasnosti sa snažíme získať ďaľšie zdrojové kódy. Kedže to ešte chvíľu potrvá, nebudeme čakať na finálny stav, ale budeme ho aktualizovať priebežne, ako sa budeme k zdrojovým kódom dostávať.

2) Prieskum zverejňovania otvorených údajov

V letných mesiacoch prebehol prieskum zverejňovania otvorených údajov, pričom primárne bol nasmerovaný na ústredné orgány štátnej správy.
https://wiki.vicepremier.gov.sk/pages/viewpage.action?pageId=101818848

Pre odhad aktuálneho stavu vyberám štatistiku:

3) Projekty zverejňovania otvorených údajov
Tu rátame určite s projektom code.gov.sk
https://wiki.vicepremier.gov.sk/pages/viewpage.action?pageId=101819047

čo bude ľahký katalóg, kde inak hľadáme aj kódera k nám do dátovky (na dohodu)
https://ats.nalgoo.com/sk/gate/mirri-gov/position/67673
ktorého zatiaľ nevieme nájsť.

A pravdedobne budeme obstarávať (nie vyvíjať) aj nejaký gitlab, ktorý sa nainštaluje a bude používať centrálne. Naši archiktekti na MIRRI nám pomôžu spraviť OPZ (opis predmetu zákazky), ten hneď ako bude hotový zverejníme. (pred VO)

4) Legislatíva súvisiaca so zdieľaním otvorených údajov
Tu je jasný zákon o ITVS a paragraf 15
https://wiki.vicepremier.gov.sk/pages/viewpage.action?pageId=101819193

Na záver by som chcel dodať, že určite by bolo fajn, aby aj tento metodický portál bol v súlade s IDSK. Samozrejme k tomuto smerujeme, a chceme to dosiahuť tak, že sa pokúsime najskôr zverejniť zdrojové kódy webového sídla MIRRI, tj. https://mirri.gov.sk, ktoré následne použijeme na tento metodický portál.

1 Like

Inak preco open code a nie open source?

Aj to je určite fajn. My keď sme hľadali podobný systém aby sme si inšpirovali, našli me viac krát vzor code.gov.XYZ,

napr. v USA je to

vo francúzsku

a myslím že keď to zopakujeme code.gov.sk, zvýrazníme o čo ide.
A opencode je ktomu metodický portál, podobne ako ku data.gov.sk je metodický portál opendata.gov.sk

Ak viacerí budú preferovať opensource.gov.sk, tak to môžeme zmeniť. Nemáme s tým žiadny problém.

precital som si to 2krat a pozrel aj wiki a aj ten dataset, ale som strateny…co sa ocakava? akoze co je cielom tohto vlakna?

To je samozrejme dobrá otázka.

Cieľom tohto vlákna je otvoriť možnosť získať odporúčaní od komunity S.D, čo by všetko mohlo byť súčasťou metodického portálu, ktorý pomôže OVMkam sprístupňovať otvorené zdrojové kódy.Tento metodický portál je podobný ako https://opendata.gov.sk (ktorý vznikol inšpiráciou https://opendata.gov.cz), ktorý pomáha OVMkam sprístupňovať otvorené údaje.

Čiže aby som bol konkrétny: určite tu plánujeme pridať podrobné kroky, aj s príkladmi, ako postupovať pri zverejňovaví kódov, a akým napr. nesprávnym praktikám sa vyhnúť. Napr. tento zdrojový kód GitHub - slovak-egov/CRZ-scraper: Web scraping and filtering code for slovak contract database - crz.gov.sk. The code downloads XML databases, creates a CSV database of contracts, filters them, downloads the files, extracts and cleans up tables with MD rates. - nemá nikde uvedenú licenciu, či je to EUPL, alebo opensource MIT. A toto sa tam všetko hodí.

Ďalšia vec je samotné informovanie, že takéto niečo vôbec existuje/resp. sa buduje. Je to podobné ako opendata.gov.sk (metodický portál pre otvorené údaje), resp. interoperabilita.gov.sk (metodický portál pre interoperabilitu).

1 Like

Podme tedfa zacat, nieco si uz naznacil:

  1. Ano, treba uvadzat licenciu, material teda moze odkazovat na to, ake nalezitosti treba splnit resp. ake kroky vykonat, aby sa dalo povedat, ze “_ano, je to licencovane pod EUPL”, vid teda https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%201_1%20Guidelines%20SK%20Joinup.pdf

    • “bare minimum” na precitanie je sekcia 4.7
    • zbytok je “omacka” (ale dolezita) pre developerov a aj laikov
  2. Lubor tu (volakedy davno, ak si dobre pamatam) kritizoval “vyluky”, vid tu vcelku dlhu vetu vo zvyraznenom odstavci 1: 95/2019 §15 - Otvorené zdrojové kódy ISVS (opencode.gov.sk) - Confluence

    T.j. metodika by mala jasne(-jsie) vysvetlit pripady, kedy teda “netreba” tak, aby bolo jasne, ze vsetky ostatne pripade “treba”. Tu by mohla pomoct formulacia z Making source code open and reusable - Service Manual - GOV.UK :

There are very few examples of code that must not be published in the open. …

  1. Tiez je zrejme vcelku podstatnou vecou riadne zdokumentovat / metodicky usmernit, kedy je chcene “mat zdrojaky, na statnom Git-e, ale neverejne” vs. “mat zdrojaky, na statnom Git-e, verejne dostupne”. To je variacia na bod 2, pricom zmysel ma najma pre org. VS. Su (myslim ojedinele) pripady, kedy ma zmysel mat zdrojaky pod EUPL ale nie verejne dostupne, typicky ako poistku proti vendor-lock a pod. pri nejakych citlivejsich projektoch.

Dalsie komentare zrejme neskor, “za jazdy”, ako bude pribudat obsah.

Spomial som odporucania GDS, tak uplne konkretne by som ich teda odporucil ako “silny zaklad” pre tie nase. Tot ako sme prebrali dizajn manual, tak mozeme prebrat aj toto:

s tym, ze teda my uz cosi mame v zakone (zrejme inak nez UK) a treba sa do toho vmestit.

1 Like

Super zdroj, perfektna metodika. :+1:
Začal som postupne pracovať na nej transponovaní:

Práve pracujeme na získaní zdrojové kódy https://mirri.gov.sk . Keď sme diskutovali ako to majú zverejniť, povedal som že aby v zdrojákoch neboli uložené žiadne heslá alebo tokeny. V rámci tej GUV.UK metodiky je to iba jeden z mnohých bodov (nas 2.5.). Diskutovali sme aj o tom, ci to maju aktualizovat, to je bod. 2.2.

Kazdopadne vsetky body do jedneho su presne tie, ktoré musíme riešiť.

Tu sa musím priznať, že v tomto stále nie je jasno, čo sa vlastne môže zverejniť. Napr. otázka je, ktorý zdrojový kód je možné zverejniť, či aj registra - samozrejme bez dát, alebo len zdrojáky webových sídiel a podobne.

Jeden z bodov metodiky GOV.UK je celkom silný

Making code with a security-enforcing function open
Code that contributes to your service’s security does not need to be kept closed. Many security-enforcing functions, such as cryptographic algorithms, are provably better when openly examined and understood while the keys are kept private. Most cryptographic standards are developed in the open by standards authorities. The US National Institute of Standards and Technology (NIST) recently concluded a 9-year process from open competition to standardisation for the SHA-3 cryptographic hashing algorithm.

toto som ešte netransponoval . otázka znie, ako definovať povedzme podmienku, že tento typ ISVS sa skrátka musí zverejniť a tento nie. Možno ten bod hovoriaci o výminkách, ked môže zostať kód zatvorený o tom niečo bližšie hovorí.

Nuz, zacnem dufam relevatnou castou zakona: 95/2019 Z.z. - Zákon o informačných technológiách ... - SLOV-LEX

zdrojový kód vytvorený počas projektu bude otvorený v súlade s licenčnými podmienkami verejnej softvérovej licencie Európskej únie podľa osobitného predpisu,18) a to v rozsahu, v akom zverejnenie tohto kódu nemôže byť zneužité na činnosť smerujúcu k narušeniu alebo k zničeniu informačného systému verejnej správy

To si ja vykladam ako “zverejnuje sa vsetko okrem zdovodnenych vynimiek”.

Potom este z dovodovej spravy: https://www.slov-lex.sk/legislativne-procesy?p_p_id=processDetail_WAR_portletsel&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cacheability=cacheLevelPage&p_p_col_id=column-2&p_p_col_count=1&_processDetail_WAR_portletsel_fileCooaddr=COO.2145.1000.3.2199302&_processDetail_WAR_portletsel_file=05_dovodova_ITVS_MPK.DOCX&_processDetail_WAR_portletsel_action=getFile

Cieľom ustanovených povinností je dosiahnuť jednotné prostredie informačných technológií a tým aj jednotný spôsob výkonu kompetencií dotknutých orgánov elektronickým spôsobom. Vzhľadom na zmeny v predošlých rokoch a na vybudovanie centrálnych komponentov e-Governmentu je jednou zo základných povinností využívanie už existujúcich riešení a zabránenie duplicitám, s dôrazom na efektívne vynakladanie verejných prostriedkov pri informatizácii spoločnosti. Keďže konečným „odberateľom“ výstupov informatizácie sú v zásadnej miere subjekty súkromného práva, ako adresáti práv a povinností v jednotlivých konaniach, ustanovuje sa aj povinnosť prihliadať na potreby a spätnú väzbu od týchto subjektov a v ich kontexte budovať a upravovať informačné technológie a ich pôsobenie.

Kedze je teda cielom o.i. ujednocovanie a zabranovanie duplicitam a kedze napr. spatnu vazbu maju davat aj subjekty sukromneho prava, tak opat si to vyladam ako “zverejnuje sa vsetko okrem zakonom definovanych vynimiek”.

Tot ak sa ma nieco prepouzivat a maju sa k tomu subjekty vyjadrovat, tak sa to neda v pripade, ze to “nieco” nie je nikde zverejnene, zdokumentovane atd. a pod.

Ak teda dojdeme do stavu, ze sa budu napr. vynimky realizovat prilis siroko a teda ze zverejnovane bude “nic” alebo “malo”, tak sa nebude plnit ucel zakona.

Naopak, ak sa ma dosiahnut co najvacsi re-use a co najefektivnejsie vynakladanie prostredkov, tak tie zdrojove kody nestaci len tak “pasivne” zverejnit, ale (a to uz idem samozrejme nad ramec povinnosti uvedenych v zakone) treba robit aj nejaku “evanjelizaciu” a “marketing”, ci uz v uzsom medzi dodavatelmi ISVS alebo zosirsia v SK alebo EU IT sektore. Tot skvela uloha pre “sefov informatizacie” na MIRRI.

1 Like

Ahojte, pár noviniek.

1)
Získali sme zdrojáky opendatového portálu Ministerstva zahraničných vecí a európskych záležitostí SR opendata.mzv.sk,

a súčasne zdrojáky webového portálu mirri.gov.sk.

2)

Bol vytvorený nový dataset
Otvorené zdrojové kódy ISVS (2022-12-05)

V súčasnosti existuje viac rozličných repozitárov (slovak-egov · GitHub, Dátová kancelária · GitHub, …) a tento dataset ich katalogizuje.

3)
Vo štvrtok bude pracovná skupina OpenData
https://wiki.vicepremier.gov.sk/pages/viewpage.action?pageId=101827352
kde chceme predstaviť postup vo vytvorení centrálnej platformy pre zdieľané kódy. Dovolím si tagnúť a pozvať @jsuchal , @hanecak, aby sa zúčastnili tohto meetingu, s platformou ideme do finále.

Aby som to v jednoduchosti zhrnul, uvažujeme o nasadení alebo GitHub, alebo GitLab alebo BItbucket platformu, pričom je ešte otázne, či to bude bežať vo vládnom cloude alebo v komerčnom cloude (čiže žiadny vlastný vývoj). Ja to ťahám smerom k anglickému riešeniu, tj. Government Digital Service · GitHub, ktorý som začal metodicky jemne transponovať, ktorý v jednom s možných svetov by mohol byť práve slovak-egov · GitHub.

S týmto je spojená jeden s metodických bodov, a to je kedy je kód opravnené nesprístupniť.
Napr. teraz som zachytil v rozhovore s našimi architektmi, že napr. tvorcovia systému KVEPIS (Komplexný veterinárny a potravinový informačný systém (KVEPIS)) síce uvažujú o publikácii zdrojových kódov, ale nebudú prístupné (môžem sa v detaili tohto ISVS mýliť, ale pointa ostáva). Ja to vidím presne opačne, že všetko má byť automaticky sprístupnené ako otvorené a výnimky musia byť veľmi presne špecifikované.

4)

Do metodiky som pridal postup ako vypublikovať zdrojový kód
https://wiki.vicepremier.gov.sk/pages/viewpage.action?pageId=101827458

a aj usmernenie pre použitie EÚPL licencie:
https://wiki.vicepremier.gov.sk/pages/viewpage.action?pageId=101820743

2 Likes

A zdrojaky su uz fuc. Co sa stalo? :sweat_smile:

Včera sme mali bezpečnostný incident v zdrojákoch mirri.gov.sk, našli sme tam API kľúč pre externý systém. Aby to nezostalo v histórii, odstránil som celý kód. Dodávateľa som už ale poprosil o nový upload, verím že tam čoskoro pribudne.

Aktualizujeme aj metodiku, ako vypublikovať zdroják. Najskôr do repozitára ktorý je privátny, nie hneď verejný, a musí sa skontrolovať. zdroják opendata.mzv.sk tam ostal. čiže verím že to dnes/zajtra bude opäť prístupné.

2 Likes

Co znamená ze kód sa musí skontrolovať? Tam bude takéto niečo?
https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning

1 Like

Aj keby bolo, tak keby niekto api key vloži napr. do readme.md tak ti to nepomôže.

1 Like

hmm a ktorým zákonom ?

Ahojte,

len pripomínam, že dnes je pracovná skupina OpenData o 13:00, a najdôležitejšia téma dnes je zdieľanie zdrojových kódov.
https://wiki.vicepremier.gov.sk/pages/viewpage.action?pageId=101827352

Okrem nich tam bude ešte stav projektu OD2.0, letmo k HVD datasetom, meraniu dopadu a potom už len GovGir - platforma pre zdieľanie zdrojových kódov (musíme to už uzavrieť), metodiky, zákon. Predstavím aj predvčerajšie issue.

Budeme veľmi radi ak sa pripojíte, a dáte nám pripomienky.
Do počutia zatiaľ. :slight_smile:

Zdrojáky už mám, ale snažim sa presvedčiť ich tvorcou, aby ich vypublikovali na náš Github samy (ja ich vypublikujem až ako poslednú možnosť). V jednoduchosti sa obávajú, čo ak sa tam nájde nejaká chyba, alebo potreba aktualizácie napr. použitých knižníc, kto to bude riešiť. Tu musím priznať že množstvo vecí nie je dotiahnutých aj na strane štátu avšak myslím, že zákon (vyhláška) takéto veci zatiaľ nevynucuje.

Keby áno, tak sa tak o ten svoj kód starať musia, ak nie, to majú zverejnenie o to ľahšie. Myslím že zverejniť zdrojáky nie je len povinnosť, ale mala by to byť aj prestíž a dobrý dôvod, takéto firmy považovať za správnych partnerov pre rozvoj štátnej informatiky.

Zverejnovat zdrojaky statnych systemov pri sucasnom pristupe k secure codingu, (ne)vyuzivania bezpecnostnych toolov pri CI/CD a celkovo laxnom pristupe ku KB pocas vyvoja (cest vynimkam) mi pride ako cisty hazard. Ideme pomahat bad actors ? Nebolo by lepsie najprv dotiahnut procesy tak, aby sa zverejneny kod dal prehlasit za bezpecny a jeho zverejnenie nepredstavovalo bezpecnostne riziko pre stat?

3 Likes

a vidim nizsie:

Zatial nic. Urcite ale kvoitujem, ze namiesto “radsej nespravime nic” ste “spravili nieco”. OK, chyby sa stavaju, poucme sa a podme dalej.

Mrzi ma, nevyslo mi.

  • nahraju na “code.gov.sk”: OK, aspon je podchytene riziko vendor-lock a pribuzne veci
  • nebude verejne: nuz OK, ale teda zdovodnenie? “lebo nebude” ci “lebo povedal architekt” sa samozrejme nepocita
    • v tej UK metodike pisu o.i.:

You should open all new source code in accordance with point 3 of the Technology Code of Practice.

There are grounds for keeping some code closed. This guide outlines what they are and why you should open configuration and security-enforcing code.

Closed code

You should keep some data and code closed, including:

  • keys and credentials
  • algorithms used to detect fraud
  • unreleased policy

https://www.gov.uk/government/publications/open-source-guidance/when-code-should-be-open-or-closed

TL;DR: Ak to ma robit KVEPIS nejako podobne, tak “skoro cele” by mali zverejnit a vynechat teda iba casti spadajuce do vynimiek. Ano, kod nebude kompletny. A ano, bude sa dat “co to vidiet/dedukovat” z toho, ze nieco niekde chyba. Ale to je prave pracovna napln sekuritakov, aby bezpecnost nestala iba na tom, ze sa utaja cele zdrojaky a dokumentacia.

Ak by sa to totiz aplikovalo prilis zosiroka, tak napr. cele UPVS ci DEUS tiez nemusi zverejnit nic, lebo v konecnom dosledku sa niekde nejako naraba s priv. klucami a to je “keys and credentials”, a kedze vsetko je integrovane so vsetkym, tak ergo kladivko by cele bolo neverejne?

Kto plni zaruku? Kto ma dodavat support? To su veci na nich. A mali by ich robit aj v pripade, ze zdrojaky zverejnene nie su.

Pricom uz sa spominal GitHub kvoli skenovaniu “secrets”, tak sa moze spomenut aj “dependabot”:

https://docs.github.com/en/code-security/dependabot/dependabot-version-updates

Mne pripada ako hazard to praveze ponechat v doterajsom status-quo. To ze sa o zalostnom stave nevie (resp. vie menej) neznamena, ze “bad actors” su mimo hru.

A teda ak sme na tom (az tak) zle, tak ako sa z toho mame vyhrabat? Ako inak vytvorit tlak na zlepsenie? Ak by takto dodavali v sukromnej sfere, tak s nimi (dufam vacsina) vyrazi dvere. Pricom v OPIS aj OPII projektoch su bezne uvadzane sadzby (za architektov, programatorov, …) “trhove” az “nad-trhove”. Nuz a trh takto “nekvalitne” IMHO nedodava. T.j. ak chce niekto trhove sadzby, ma dodat aj trhovu kvalitu.

(Takto to vyzera, ze si dodavatelia skor zvykli na “uctujeme seniora, ale platime iba juniora”. Ci nieco podobne.)

1 Like

p.s.: K vyssie spomenutym zakopnutiam vcelku paradne pasuje aj toto:

Len dufam, ze to NIE JE pravda, aj moje cynicke ja hovori, ze “to si pis ze je”.

1 Like

Ako som písal. Minimalne treba zaviest procesy automatickej kontroly zraniteľností v kóde, predtým ako sa kód zverejní.

1 Like