.. _Admin_config:

================
Konfigurace Elza
================

Konfigurace aplikace Elza je standardně uložena v souboru 
:file:`elza.yaml` (případně :file:`elza-ui.yaml`) v závislosti
na distribuci aplikace. Soubor obsahuje definici databázového připojení,
nastavení pracovního adresáře a některá další nastavení.

Konfigurace je soubor ve formátu :token:`YAML`.

-------
Příklad
-------

Příklad konfigurace

.. literalinclude:: examples/elza.yaml
   :language: yaml

.. _Admin_config_web:

--------------------------
Nastavení webového serveru
--------------------------

Pokud je aplikace spuštěna samostatně, je možné nastavit
port pro příjem HTTP požadavků. Výchozí port je 8080.

Popis možností nastavení portů, adresy serveru a další 
možnosti týkající se HTTP komunikace jsou popsány v dokumentaci:
`Server properties <https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#server-properties>`_.

Ukázka nastavení pro spuštění serveru na portu 8088:

.. code-block:: yaml

  server:
    port: 8088


Pokročilé nastavení serveru
----------------------------

V rámci nastavení serveru je možné nastavit i pokročilé parametry, například:

 - pojmenování sessionn cookie (:token:`server.servlet.session.cookie.name`)
 - maximální délka session (:token:`server.servlet.session.timeout`)
 - požadavek na zabezpečené spojení (:token:`server.servlet.session.cookie.secure`)
 - maximální počet vláken pro zpracování požadavků (:token:`server.tomcat.max-threads`)


------------------
Nastavení databáze
------------------

Konfigurace databáze se provádí v sekci :token:`elza.data`. 
Nastavení se skládá ze tří částí:

 * :token:`url` - připojení k databázi, formát je dle dokumentace 
   JDBC ovladače
 * :token:`user` - uživatelské jméno
 * :token:`pass` - heslo pro připojení k databázi

-------
Přílohy
-------

Konfigurace příloh se provádí v sekci :token:`elza.attachment`. 

Konfigurace slouží k definici typů příloh, určení,
které mohou uživatelé přímo v aplikaci editovat a případné nastavení 
generátorů pro převod do cílových formátů.

Sekce :token:`mimeDefs` definuje typy souborů. Každý typ se konfiguruje
pomocí těchto atributů:

 * :token:`mimeType` - mime-type přílohy
 * :token:`editable` - příznak, zda je typ editovatelný
 * :token:`generators` - seznam generátorů, které umožňují převod 
   daného formátu do jiného

Generátor a jeho konfigurace
----------------------------

Generátorem se rozumí konfigurace externí aplikace, která umožňuje
převod souboru do jiného formátu. Konfigurace generátoru se skládá 
ze tří částí:

 * :token:`outputMimeType` - výstupní formát generátoru (například: 
   :token:`application/pdf` )
 * :token:`command` - příkaz, který je spuštěn pro provedení transformace
 * :token:`outputFileName` - jméno souboru, který obsahuje výsledek transformace

Příkaz může být parametrizován. Parametry uvedené ve složených závorkách
jsou zaměněny za příslušné argumenty. Číslování argumentů je od nuly.

Dostupné argumenty:
 * :token:`{0}` - plná cesta do pracovního adresáře
 * :token:`{1}` - jméno vstupního souboru
 * :token:`{2}` - jméno vstupního souboru včetně úplné cesty
 * :token:`{3}` - jméno výstupního souboru
 * :token:`{4}` - jméno výstupního souboru včetně úplné cesty

------------------
Parametry aplikace
------------------

Další parametry aplikace.

Maximální velikosti upload požadavků
------------------------------------

Z bezpečnostních důvodů jsou v aplikaci nastaveny maximální velikosti pro velikost 
upload požadavků. Tyto limity je možné změnit.

 * :token:`elza.upload.max_file_size` - maximální velikost jednoho nahrávaného souboru, výchozí hodnota: 25MB
 * :token:`elza.upload.max_request_size` - maximální velikost jednoho požadavku, výchozí hodnota: 100MB

 Nastavením hodnoty -1 je možné omezení zcela vypnout.

.. _Admin_config_scope_del_ents: 

Maximální velikost dávky pro databázové operace
-----------------------------------------------

Parametr zajišťuje bezpečnou a efektivní práci se seznamy v databázových dotazech s tím,
že rozděluje příliš velké seznamy na dávky. Výchozí velikost dávky je 1000. Pomocí parametru je možné nastavit
velikost dávky (maximální počet záznamů v klauzuli IN):

 * :token:`elza.data.batchSize` - maximální velikost dávky

Vymazání oblastí archivních entit
---------------------------------

Archivní entity jsou členěny do oblastí. Oblast nelze odstranit
pokud jsou k ní připojeny archivní entity. Aktivací zvláštní
volby je možné vynutit odstranění oblasti.

 * :token:`elza.scope.deleteWithEntities` - hodnota true nebo false

Volba je standardně vypnuta (false). Pokud je volba aktivní 
(po restartu aplikace). Je možné odstranění již nepoužívaných oblastí.


.. _Admin_config_upload_reindex:

Automatická reindexace
---------------------------------

Ve výchozí konfiguraci je nastaveno provádění automatické reindexace dat každou sobotu 
ve 4:00 ráno. Spouštění reindexace je možné deaktivovat nebo nastavit 
vlastní frekvenci jejího provádění. Popis nastavení je ve vzorové konfiguraci
v části :token:`elza.reindex.cron`.


.. _Admin_config_upload_fa: 

Předávání pomůcek a výstupů pomocí WS
-------------------------------------

Pomocí webové služby je možné výslednou archivní 
pomůcku automatizovaně předat po vygenerování do návazného informačního systému.
Pomůcka je odeslána pomocí WSDL služby - FileTransfer.

Z hlediska konfigurace je pro předávání nutné nastavit:
 * :token:`elza.findingAid.upload.url` - cílové URL 
 * :token:`elza.findingAid.upload.username`, :token:`elza.findingAid.upload.password` - volitelné jméno a heslo pro BASIC autorizaci.
 * :token:`elza.findingAid.upload.soapLogging` - podrobné logování komunikace (true/false)

Pro povolení nahrávání pomůcek z uživatelského rozhraní je nutné nastavit:
 * :token:`elza.output.allowSend: true` - povolení odesílání
 * :token:`elza.output.senderName: FtOutputSender` - určení způsobu odesílání

Kompletní příklad nastavení:

.. code:: yaml

  elza:
    findingAid:
      upload:
        url: http://10.1.25.34:8080/esm/cxf/ft
        soapLogging: false
        username: xxxxx
        password: xxxxx
    output:
      allowSend: true
      senderName: FtOutputSender



Url pro adresu po odhlášení
-----------------------------------

V nastavení je možné definovat adresu pro přechod při odhlášení uživatele. Při odhlášení uživatele
dojde k přesměrování na určenou adresu.

 * :token:`elza.security.logoutUrl` - url adresa přechodu

 