.. _badatelna_techdoc: ====================== Technická dokumentace ====================== .. _badatelna_techdoc_instalace: Instalace ========== Zdrojový kód je kompilován pomocí Apache Maven: *mvn clean package -DskipTests* Zkompilovaná aplikace je zabalena v spustitelném *.jar* souboru. Závislosti: ----------- * PostgreSQL (verze 15 a vyšší) * Java 11+ (OpenJDK) * Apache Elasticsearch 6.8.2 ................... Elasticsearch doporučujeme instalovat standartně přes Správce balíčků (package manager), pokud je toto z nějakého důvodu nevyhovující, přikládáme alternativní postup instalace. **Struktura** .. code-block:: Struktura je aktualně nasledující: drwxrwsr-x 2 inqool elasticsearch 178 May 10 22:50 config drwxrwsr-x 4 elasticsearch elasticsearch 34 May 10 22:47 data drwxrwsr-x 6 inqool elasticsearch 117 May 10 22:37 elasticsearch-6.8.2 lrwxrwxrwx 1 elasticsearch elasticsearch 20 May 10 22:46 elasticsearch-current -> elasticsearch-6.8.2/ drwxrwsr-x 2 elasticsearch elasticsearch 6 May 10 22:46 run Jedná se o variantu ve které jsou logy, data a konfigurace odděleně od binarních dat za účelem jednodušších aktualizací a vyšší bezpečnosti. Právo zápisu do binarních dat a konfigurací má pouze uživatel inqool. **Instalace (CentOS 7)** .. literalinclude:: ../esm/prilohy/elastic-install Spuštění aplikace z příkazové řádky ----------------------------------- Restartování aplikace spuštěné přímo z příkazové řádky: * pomocí *ps xw* nalézt PID JAVA procesu *badatelna.jar* * kill * nohup **java -jar** -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 badatelna.jar $> badatelna.log * *agentlib:jdwp* lze vypustit, slouží pro možnost remote debuggingu * pracovní adresář je automaticky adresář z nějž je aplikace spuštěna, lze změnit přepínačem *-Duser.dir={cesta}* Spuštění aplikace jako služby ----------------------------- - badatelna.service - vzorový konfigurační soubor pro systemd službu .. literalinclude:: prilohy/badatelna.service - badatelna.conf - konfigurační soubor systemd služby - vložit do pracovního adresáře aplikace .. literalinclude:: prilohy/badatelna.conf .. _badatelna_techdoc_konfigurace: Konfigurace =========== Systém ------- Aplikace je konfigurovatelná skrze soubor **application.yml** který se nachází v **pracovním adresáři**. Konfigurační hodnoty v tomto souboru překrývají defaultní konfigurační hodnoty v souboru application.yml nacházejícím se ve složce **src/main/resources**. Po přepsání souboru je pro projevení změn nutné aplikaci restartovat. Při konfigurování atributů cest na souborovém systému lze zadat relativní cestu vzhledem k pracovnímu adresáři. Cron používaný aplikací musí být ve formátu: *second, minute, hour, day of month, month, day(s) of week*. Databáze ======== - Všechny entity používají UUID. - Tabulky jsou generovány při prvním spuštění aplikace. - Aplikačnímu serveru musí být povolen přístup k DB s přihlašováním typu “md5” Instalační balíček ================== Pro instalaci je dodán samostatný instalační balíček Badatelny. Databáze je iniciována automaticky při prvním startu aplikace. Jsou dodány tyto přílohy: - *badatelna.jar* - zkompilovaná aplikace - *application.yml* - konfigurační soubor překrývající defaultní konfiguraci - vložit do pracovního adresáře aplikace. Jedná se o vzorový soubor, jednotlivé konfigurační hodnoty může být nutné upravit dle konkrétního prostředí. - *reportTemplates.zip* - soubory se šablonami pro generování PDF dokumentů, nutné rozbalit do složky shodné s hodnotou v application.yml `files.templatesPath`, v případě hodnoty `../dataspace/archival` tedy musí být `.jrxml` šablony umístěné v `../dataspace/archival/reportTemplates` - *httpd.conf* - hlavní konfigurační soubor Apache - *conf.d.zip* - další konfigurační soubory Apache - *web-build.zip* - build GUI aplikace - rozbalit a nakopírovat obsah složky "build" do `/inet/www/html-ais/badatelna` (dle httpd konfigurace) - *.htaccess* - konfigurační soubor Apache, který je potřebné umístit do složky kde byl rozbalený web-build.zip (předvoleně tedy do `/inet/www/html-ais/badatelna`) Reindex ======= Z uživatelského rozhraní ------------------------ Reindexace je možná z administrační části badatelny selektivně pro vybrané entity na url `${base-url}/badatelna/admin/reindex` (Nástroje vývojáře->Skripty->Reindex API). Reindex probíhá synchronně, pro entity s mnoha záznamami je tedy možné, že request timeoutne dříve než reindex skončí, na jeho provedení to ale vliv nemá. Z příkazové řádky ----------------- Kompletní reindex je možné spustit POST requestem na URL http://localhost:8080/badatelna/api/admin/index s HTTP hlavičky .. code-block:: X-SSO-Username=99673495` (casId libovolného správce) authenticationlevel=urn:cuni:authenticationlevel:basic např. `curl -X POST -H 'X-SSO-Username: 99673495' -H 'authenticationlevel: urn:cuni:authenticationlevel:basic' 'http://localhost:8080/badatelna/api/admin/index'`