Statny Zapier

Povinne kazdy projekt dodany statu by mal mat verejne API - vsetko pristupne cez stranku by malo byt dostupne aj cez API

Cely stat by mal fungovat na jednotnom formate api, idealne by bolo ak by aj dokumentacia bola na jednom mieste, pripadne aby existoval centralny proxy server na pristup ku kazdemu zdroju dat v state (nieco ako zapier pre stat).

Priklad API co by sme vedeli ihned vyuzit:

  • ziskavanie dokumentov z CRZ, ktory aktualne nefunguje ako ma - velmy lachko by sa dal spravit projektik nad elasticom, kde by sa dali zmluvy prehladavat aj fulltextom, vyhladavanie by vracalo vysledky do 100ms a nie v minutach

  • informacie o autach

  • informacie o daniach a dlznikoch

  • ORSR a ZRSR

API kluc by bol prideleny kazdemu developerovi po registracii a overeni cez zadanie kreditnej karty (napr spracovanie 0.1 EUR transakcie).
Prekrocenie limitu API volani by mohlo byt aj spoplatnene (limit na pocet volani by vsak mohol byt v radoch 10M/mesacne, zadanie CC by malo sluzit len na overenie majitela API kluca)

2 Likes

Suvisi s zverejnenie integracnych manualov

Inak ten projektik nad CRZ uz existuje. Vola sa www.otvorenezmluvy.sk :smile:

2 Likes

tym padom by CRZ a jeho udrzbu mohli zrusit a naplnat zmluvy priamo na otvorenezmluvy.sk :smile:

Ale cela myslienka postu je, ze by sa nemali zverejnovat adhoc integracie, ale mal by byt centralny vladny zapier

To zverejnovanie prave klucove v tomto momente. Aby sme vedeli co vlastne stat ma. Je to podobna situacia ako s open data. Nevies co mas od koho ziadat lebo ani nevies, ze to existuje. Inak suhlas.

Este by ta mohlo zaujimat Heroku-like nasadzovanie

ano, API key / pristup by si mal len jeden na vsetky services statu - to by bola zakladna idea …

Na http://datagov.globaltel.sk/ bezi novy data.gov.sk, tam netreba ani API kluce. Ale je jasne, ze nejake API musia byt cez kluc a niektore dokonca musia byt aj autorizovane pouzivatelom. Napriklad keby si chcel spravit nieco za mna v schrankach (otvorit postu co je “do vlastnych elektronickych ruk”).

1 Like

Súhlas.

Ono asi je jedno kde je endpoint na dáta/API - a či je jeden alebo veľa. Najmä by mali všetky spĺňať rovnaké štandardy.
Pre OpenData toto máme riešené v §51-53 štandardov ISVS imho celkom dobre.
Prístup k OpenData môže byť aj úplne anonymný, ale niekedy aj používateľ vlastne chce mať autorizované pripojenie (napr. cez API kľúč) - povedzme keď chce nejakú SLA.

Pri OpenAPI je rozdiel od OpenData práve že ide o služby s autorizovaným subjektom. Toto je jedna z principiálnych možností ako otvoriť eGov veci na normálne IT použitie. Avšak takéto API verejne prístupné je zatiaľ pre štát úplné sci-fi. Teraz sa k tomu vždy musí robiť integrácia (tortúra na viac ako 3 mesiace vybavovania) a aj tak je väčšina dostupná ako “back-end služba” - zjednodušene povedané iba na G2G.

1 Like

Snad potesim, ale uz nejde o sci-fi, je to realne zvazovana tema - princip na urovni novej Narodnej koncepcie informatizacie verejnej spravy.

Na datagov.globatel.sk som dostal tuto chybu :frowning:

URL: http://datagov.globaltel.sk/
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/weberror/evalexception.py’, line 431 in respond
app_iter = self.application(environ, detect_start_response)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/webob/dec.py’, line 147 in call
resp = self.call_func(req, *args, **self.kwargs)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/webob/dec.py’, line 208 in call_func
return self.func(req, *args, **kwargs)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/fanstatic/publisher.py’, line 234 in call
return request.get_response(self.app)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/webob/request.py’, line 1053 in get_response
application, catch_exc_info=False)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/webob/request.py’, line 1022 in call_application
app_iter = application(self.environ, start_response)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/webob/dec.py’, line 147 in call
resp = self.call_func(req, *args, **self.kwargs)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/webob/dec.py’, line 208 in call_func
return self.func(req, *args, **kwargs)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/fanstatic/injector.py’, line 54 in call
response = request.get_response(self.app)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/webob/request.py’, line 1053 in get_response
application, catch_exc_info=False)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/webob/request.py’, line 1022 in call_application
app_iter = application(self.environ, start_response)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/beaker/middleware.py’, line 73 in call
return self.app(environ, start_response)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/beaker/middleware.py’, line 155 in call
return self.wrap_app(environ, session_start_response)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/routes/middleware.py’, line 131 in call
response = self.app(environ, start_response)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/pylons/wsgiapp.py’, line 125 in call
response = self.dispatch(controller, environ, start_response)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/pylons/wsgiapp.py’, line 324 in dispatch
return controller(environ, start_response)
File ‘/root/ckan/lib/default/src/ckan/ckan/lib/base.py’, line 346 in call
res = WSGIController.call(self, environ, start_response)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/pylons/controllers/core.py’, line 217 in call
response = self._inspect_call(self.before)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/pylons/controllers/core.py’, line 107 in _inspect_call
result = self._perform_call(func, args)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/pylons/controllers/core.py’, line 60 in _perform_call
return func(**args)
File ‘/root/ckan/lib/default/src/ckan/ckan/controllers/home.py’, line 24 in before
base.BaseController.before(self, action, **env)
File ‘/root/ckan/lib/default/src/ckan/ckan/lib/base.py’, line 247 in before
app_globals.app_globals._check_uptodate()
File ‘/root/ckan/lib/default/src/ckan/ckan/lib/app_globals.py’, line 180 in _check_uptodate
value = model.get_system_info(‘ckan.config_update’)
File ‘/root/ckan/lib/default/src/ckan/ckan/model/system_info.py’, line 31 in get_system_info
obj = meta.Session.query(SystemInfo).filter_by(key=key).first()
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/orm/query.py’, line 2156 in first
ret = list(self[0:1])
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/orm/query.py’, line 2023 in getitem
return list(res)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/orm/query.py’, line 2227 in iter
return self._execute_and_instances(context)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/orm/query.py’, line 2240 in _execute_and_instances
close_with_result=True)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/orm/query.py’, line 2231 in _connection_from_session
**kw)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/orm/session.py’, line 730 in connection
close_with_result=close_with_result)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/orm/session.py’, line 734 in _connection_for_bind
return self.transaction._connection_for_bind(engine)
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/orm/session.py’, line 267 in _connection_for_bind
conn = bind.contextual_connect()
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/engine/base.py’, line 2490 in contextual_connect
self.pool.connect(),
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/pool.py’, line 224 in connect
return _ConnectionFairy(self).checkout()
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/pool.py’, line 387 in init
rec = self._connection_record = pool._do_get()
File ‘/usr/lib/ckan/default/lib/python2.7/site-packages/sqlalchemy/pool.py’, line 729 in _do_get
(self.size(), self.overflow(), self._timeout))
TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30

OtvorenéZmluvy.sk sú investigatívna stránka Aliancie Fair-play a Transparency International Slovensko, ktorej úlohou je pomôcť občanom čítať, vyhľadávať a posudzovať výhodnosť zmlúv uzatvorených štátom a štátnymi inštitúciami.
Stránka vznikla podľa konceptu prezentovaného na podujatí Fair-play Hack Day 2010. Projekt vznikol s podporou Britskej Ambasády, Open Society Institute a spoločností Minio, Odyzeo, Digmia a Websupport. Všetkým zúčastneným ďakujeme za podporu!

Ako sa dá dostať k nejakým zdrojom zo švédskych fondov, britskej ambasady alebo podobne? Všetky podobné projekty ktoré ja mám som prakticky urobil zadarmo s vidinou malého zisku cez adsense…

Maju vyzvy na granty. Ale toto sme neriesili my, toto riesila TIS a AFP, my sme boli dodavatel.

Som rád že to tam je.
Avšak daj reálny postup/plán ako a dokedy sa spraví že napr. služby MV, ÚPVS, kataster a eHealth budú dostupné ako OpenAPI. (A potom ho vlož do NKIVS, som zvedavý na pripomienky rezortov.)
“Jeden krát a dosť” sa zvažuje už 10 rokov.

1 Like

drsny fingerprinting :hushed:
Co to ma byt za projekt? To je v produkcnej prevadzke?

Toto nie je tema na bugreporty ineho projektu. Inak to nie je v produkcnej prevadzke a ma to byt novy data.gov.sk

1 Like