datagov-cz / lkod

Referenční implementace Lokálního katalogu otevřených dat. Tento repozitář je udržován v rámci projektu OPZ č. CZ.03.4.74/0.0/0.0/15_025/0013983.
MIT License
2 stars 2 forks source link

Příliš dlouhý JSON je odmítnut #8

Open Skalin opened 2 years ago

Skalin commented 2 years ago

Při pokusu o natažení dat z lokálního katalogu do formuláře národního katalogu je v případě příliš dlouhého vstupu požadavek odmítnut s chybou: ` PayloadTooLargeError: request entity too large at readStream (/opt/lp/dcat-ap-forms/node_modules/raw-body/index.js:155:17) at getRawBody (/opt/lp/dcat-ap-forms/node_modules/raw-body/index.js:108:12) at read (/opt/lp/dcat-ap-forms/node_modules/body-parser/lib/read.js:77:3) at urlencodedParser (/opt/lp/dcat-ap-forms/node_modules/body-parser/lib/types/urlencoded.js:116:5) at Layer.handle [as handle_request] (/opt/lp/dcat-ap-forms/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/opt/lp/dcat-ap-forms/node_modules/express/lib/router/index.js:317:13) at /opt/lp/dcat-ap-forms/node_modules/express/lib/router/index.js:284:7 at Function.process_params (/opt/lp/dcat-ap-forms/node_modules/express/lib/router/index.js:335:12) at next (/opt/lp/dcat-ap-forms/node_modules/express/lib/router/index.js:275:10) at jsonParser (/opt/lp/dcat-ap-forms/node_modules/body-parser/lib/types/json.js:119:7)

`

Ukázkový JSON, který je poslán do LKOD, je přiložen v příloze: dataset.zip

Je tohle vůbec nějakým způsobem možné řešit?

jakubklimek commented 2 years ago

Řešit lze samozřejmě vše, ale tady je problém jinde.

  1. Nedává smysl do formuláře, který je určen pro ruční vyplňování, cpát 217 distribucí datové sady. To by nikdy žádný člověk nenaklikal.
  2. Odporuje to principům DCATu a DCAT-AP - tohle má být série datových sad, nikoliv datová sada s hodně distribucemi, viz https://opendata.gov.cz/špatná-praxe:špatné-dělení-distribucí
sinacek commented 2 years ago

@jakubklimek Dominik tady nevysvětlil kontext. On dělá na migraci CKAN -> LKOD a pak je potreba aby ti to po migraci uzivatel byl schopen spravovat v tom formuláři. Tedy hledáme rozumnou variantu jak to strojově přenést do systému, který bude podporovat aktuální standardy

jakubklimek commented 2 years ago

@sinacek Tomu rozumim, ale nerozumim, jak do toho zapadá formulář. Cílem formuláře je umožnit tvořit a editovat validní data. Ten JSON v issue z tohohle pohledu validní není, takže není divu, že s formulářem nefunguje. Ani kdyby to šlo, tak by to nikdo nebyl schopen ve formuláři editovat - je toho moc.

Chápu, že vzniká ta transformace CKAN -> DCAT, ale automatická transformace neexistuje a je třeba některé věci dodat manuálně. Ostatně kdyby existovala, tak to pak není problém používat a nebojujeme proti tomu tak. Konkrétně tady je třeba detekovat/označit případ reprezentace datové série a vygenerovat příslušnou datovou sérii, tedy zastřešující datovou sadu bez distribucí a jednotlivé datové sady (zřejmě po jedné distribuci) jako členy této série.

Pak je třeba dodat, že nikdy nebyl záměr formuláře umožnit ručně editovat datové série, protože to je věc, která typicky vzniká automaticky z nějakého IS a tedy její správný popis vznikne v rámci publikace, nikoliv že by ty datové série někdo vyplňoval ručně. Tedy jednotlivé datové sady série formulář načte, ale nemá podporu pro zobrazení/editaci té vazby k té zastřešující datové sadě.