4.4. Konfigurace aplikace
4.4.1. Konfigurační soubor
Elza čte konfiguraci ze souboru config/elza.yaml v pracovním
adresáři procesu (instalačním adresáři), případně ze souboru
elza.yaml v tomto adresáři. Soubor je ve formátu YAML. Vzorový
soubor je součástí distribuce (server/config/elza.yaml).
Hodnoty, které soubor neobsahuje, se přebírají z výchozích hodnot
aplikace. Libovolnou hodnotu lze nastavit také proměnnou prostředí, jejíž
název je klíč velkými písmeny s tečkami nahrazenými podtržítky (například
ELZA_DATA_PASS pro elza.data.pass), nebo systémovou vlastností
Javy (-Delza.data.pass=...). Proměnné prostředí a systémové vlastnosti
mají přednost před souborem.
Minimální konfigurace:
elza:
data:
url: jdbc:postgresql://localhost/elza
user: elza
pass: tajne
workingDir: /opt/elza/work
logFile: ${elza.workingDir}/log/elza.log
siemLogFile: ${elza.workingDir}/log/siem.log
Změny se projeví po restartu aplikace.
Nastavení externích systémů (CAM, úložiště digitalizátů, mapové servery, poskytovatelé AI) není součástí souboru; spravují se v administraci (viz Integrace). Autentizaci popisuje kapitola Autentizace a zabezpečení.
Plánované úlohy se nastavují výrazy cron se šesti poli:
<sekunda> <minuta> <hodina> <den-v-měsíci> <měsíc> <den-v-týdnu>,
například 0 0 4 ? * SAT pro každou sobotu ve 4:00. Hodnota -
úlohu vypne.
4.4.2. Databáze a pracovní adresář
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
(povinné) |
JDBC URL databáze, například |
|
(povinné) |
Databázový uživatel. |
|
(povinné) |
Heslo databázového uživatele. |
|
1000 |
Maximální počet položek v jednom databázovém dotazu se seznamem
hodnot (klauzule |
|
|
Pracovní adresář: binární soubory ( |
|
|
Locale pro řazení textů a pro formátování a čtení dat v aplikaci. Neurčuje jazyk uživatelského rozhraní. |
Pool databázových spojení má 20 spojení
(spring.datasource.hikari.maximumPoolSize); zvyšujte jej jen spolu
s počty vláken uvedenými níže.
4.4.3. Webový server a nahrávání souborů
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
8080 |
HTTP port aplikace. |
|
všechny adresy |
Síťová adresa, na které server naslouchá. Pokud reverzní proxy
běží na stejném serveru, nastavte |
|
|
Maximální velikost jednoho nahrávaného souboru. |
|
|
Maximální velikost jednoho požadavku s nahrávanými soubory.
|
|
|
Název aplikace zobrazovaný v uživatelském rozhraní. |
|
(nenastaveno) |
URL integračního skriptu, který doplní vlastní záhlaví a zápatí (viz Integrace). |
Použijte přesně klíče elza.upload.* s podtržítky; standardní klíče
spring.servlet.multipart.* ani starý multipart.maxFileSize nemají
žádný účinek.
Další nastavení vloženého serveru popisují vlastnosti serveru Spring Boot,
například dobu platnosti session (server.servlet.session.timeout),
session cookie (server.servlet.session.cookie.name,
server.servlet.session.cookie.secure) nebo maximální počet vláken pro
zpracování požadavků (server.tomcat.threads.max).
Přístupový log (access log)
Vložený Tomcat umí zapisovat každý HTTP požadavek jako jeden řádek do přístupového logu. Ve výchozím stavu je vypnutý. Nastavte i adresář, jinak Tomcat zapisuje do dočasného adresáře:
server:
tomcat:
accesslog:
enabled: true
directory: ${elza.workingDir}/log
prefix: access_log
suffix: .log
file-date-format: .yyyy-MM-dd
pattern: "%h %{X-Forwarded-For}i %l %u %t \"%r\" %s %b %{ms}T"
buffered: false
rotate: true
Soubor má název access_log.<rrrr-MM-dd>.log a rotuje se denně.
Pole vzoru jsou: %h adresa klienta (za reverzní proxy adresa proxy),
%{X-Forwarded-For}i původní adresa klienta předaná proxy, %l a
%u identita a uživatel (obvykle -; přihlášení do Elzy zde vidět
nejsou), %t čas, %r řádek požadavku, %s stavový kód, %b
velikost odpovědi v bajtech, %{ms}T doba zpracování v milisekundách.
Další pole popisuje dokumentace přístupového logu Tomcat.
buffered: false zapisuje každý řádek okamžitě; true je výkonnější
při vysoké zátěži.
4.4.4. Logování
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
(nenastaveno) |
Cesta k aplikačnímu logu, například
|
|
(nenastaveno) |
Cesta k bezpečnostnímu auditnímu logu (události autentizace ve
formátu JSON), například |
Úrovně logování se nastavují standardními klíči logging.level.*,
například logging.level.cz.tacr.elza: debug.
4.4.5. Zpracování na pozadí
Dlouhotrvající činnosti se zpracovávají ve frontách na pozadí. Každá fronta má maximální počet vláken a tam, kde to má smysl, maximální počet úloh běžících současně pro jeden archivní soubor. Více vláken urychlí zpracování mnoha archivních souborů, ale zvyšuje zátěž databáze a spotřebu paměti.
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
4 |
Vlákna pro validaci jednotek popisu. |
|
2 |
Současně běžící validace pro jeden archivní soubor. |
|
4 |
Vlákna pro hromadné akce (funkce). |
|
1 |
Současně běžící hromadné akce pro jeden archivní soubor. |
|
2 |
Vlákna pro generování výstupů a zároveň vlákna fronty exportů (viz poznámka níže). Generování výstupů je paměťově náročné. |
|
1 |
Současně generované výstupy pro jeden archivní soubor. |
|
1 |
Současně běžící exporty pro jeden archivní soubor. |
|
4 |
Vlákna pro zpracování archivních entit (validace, generování názvů). |
Poznámka
Klíč elza.asyncActions.export.threadCount se načítá, ale ve verzi
3.4 se fronta exportů řídí klíčem
elza.asyncActions.output.threadCount.
4.4.6. Vyhledávání a cache
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
10000 |
Maximální počet výsledků fulltextového vyhledávání v jednotkách popisu. |
|
1000 |
Maximální počet výsledků pro jeden archivní soubor. |
|
10000 |
Časový limit v milisekundách pro sestavení výsledku vyhledávání. |
|
30 |
Počet stromů verzí archivních souborů držených v paměti. Zvyšte při větším počtu uživatelů pracujících na různých archivních souborech a dostatku paměti. |
|
|
Zobrazovat ve stromu informace o připojených digitalizátech. |
|
800 |
Velikost dávky při přestavbě cache archivních entit. |
|
800 |
Počet archivních entit zpracovaných v jedné transakci při přestavbě cache. |
4.4.7. Plánovaná údržba
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
|
Úplná přestavba vyhledávacího indexu, ve výchozím nastavení každou sobotu ve 4:00. Index lze přestavět také v administraci (Přepočítat indexy). |
|
|
Denní úklid: nepoužívané datové záznamy, soubory importních dávek starší než 30 dní a prošlý obsah koše DMS. |
|
150000 |
Počet nepoužívaných datových záznamů smazaných v jedné transakci úklidu. Snižte pro kratší transakce. |
|
|
Kontrola konzistence úložiště binárních souborů vůči databázi. Osiřelé soubory se přesunou do koše. |
|
60 |
Minimální stáří souboru, aby jej kontrola konzistence mohla považovat za osiřelý. |
|
30 |
Počet dní, po kterých se obsah přesunutý do
|
4.4.8. Výstupy
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
|
Formát výstupů generovaných ze šablon Jasper: |
|
100 |
Počet stran výstupu držených při generování v paměti; ostatní
strany se odkládají do souboru v dočasném adresáři. |
|
1024 |
Velikost bloku odkládacího souboru v kB. |
|
100 |
Počet bloků, o které se odkládací soubor zvětšuje. |
|
1000 |
Počet archivních entit držených v paměti při generování jednoho
výstupu. |
|
prohlížeč map LightComp |
Základní URL prohlížeče map pro odkazy na souřadnice ve výstupech. |
Předávání výstupů do jiného systému
Vygenerovanou archivní pomůcku je možné odeslat do systému, který
implementuje službu SOAP FileTransfer. Odesílání se v uživatelském
rozhraní povoluje volbou elza.output.allowSend a vyžaduje nastavení
odesílatele:
elza:
output:
allowSend: true
senderName: FtOutputSender
findingAid:
upload:
url: https://dms.archiv.example/esm/cxf/ft
username: elza
password: tajne
soapLogging: false
soapLogging zapíše do logu celou komunikaci SOAP.
4.4.9. Přílohy
elza.attachment.mimeDefs uvádí typy souborů připojených k archivnímu
popisu, které mohou uživatelé v aplikaci editovat, a volitelné
generátory, které je pomocí externího programu převádějí do jiných
formátů:
elza:
attachment:
mimeDefs:
- mimeType: text/plain
editable: true
generators:
- outputMimeType: application/pdf
command: txt2pdf {2} {4}
outputFileName: result.pdf
mimeTypeMIME typ přílohy.
editableZda mohou uživatelé soubory tohoto typu editovat. Uvádějte vždy.
generatorsExterní převody.
commandse spouští v dočasném adresáři;{0}se nahradí cestou k tomuto adresáři,{1}názvem vstupního souboru,{2}jeho úplnou cestou,{3}názvem výstupního souboru a{4}jeho úplnou cestou.outputFileNameje název souboru, který příkaz vytvoří (zástupné znaky se v něm nenahrazují),outputMimeTypejeho typ.
4.4.10. Import
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
(nenastaveno) |
Adresář na serveru, ze kterého mohou uživatelé dávkově importovat archivní soubory (Import ze složky na serveru). Uživatelé mohou procházet jen jeho podadresáře. Bez nastavení je import ze složky na serveru vypnutý; nahrání z prohlížeče funguje vždy. |
|
|
Znovu nahrát balíček se stejnou verzí, jako má již nahraný balíček. Pouze pro vývoj balíčků. |
4.4.11. Archivní entity
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
|
Povolit smazání oblasti, která ještě obsahuje archivní entity, společně s nimi. Zapínejte jen dočasně pro odstranění již nepoužívaných oblastí. |
4.4.12. Mapové podklady
elza.map.layers uvádí mapové podklady nabízené v editoru souřadnic.
Každý podklad má name, type (OSM nebo WMS), url, u WMS
název vrstvy layer a initial: true pro podklad zobrazený jako
první:
elza:
map:
layers:
- name: GR_ZM25
type: WMS
url: https://geoportal.cuzk.cz/WMS_ZM25_PUB/WMService.aspx
layer: GR_ZM25
initial: false
4.4.13. Webové služby
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
|
Jak služba |
4.4.14. AI asistent
Vlastní poskytovatel AI se nastavuje jako externí systém.
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
300 |
Požadavek selže, pokud poskytovatel není po tuto dobu nepřetržitě dostupný. |
|
1800 |
Maximální stáří nedokončeného požadavku. |
4.4.15. Monitorování
management.* (správcovský port) a elza.monitoring.scheduler.*
popisuje kapitola Monitorování.
4.4.16. Diagnostika
Nastavení pro řešení problémů, nikoli pro běžný provoz:
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
|
Zapisovat zprávy webového klienta do konzole prohlížeče. |
|
|
Zapisovat do logu dobu zpracování každého REST požadavku. |
|
|
Zapisovat do logu každý HTTP požadavek včetně obsahu, na úrovni
DEBUG loggeru
|
|
|
Kontrolovat datace jednotek popisu. |
|
|
Odmítat prázdné textové hodnoty nebo hodnoty tvořené jen mezerami. |
4.4.17. Již nepoužívané klíče
Tyto klíče lze z elza.yaml odstranit:
spring.jpa.properties.hibernate.dialects dialektem PostGIS z konfigurací řady 2.x,multipart.maxFileSize(použijteelza.upload.*),elza.accesspoints.sync(od verze 3.4 přesunuto do nastavení externího systému),elza.da.sync(od verze 3.4.5 přesunuto do nastavení úložiště digitalizátů),elza.ap.checkDb,elza.hibernate.index.*.