4.6. Konfigurace Elza

Konfigurace aplikace Elza je standardně uložena v souboru elza.yaml (případně 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 YAML.

4.6.1. Příklad

Příklad konfigurace

#
# Port and binding address for HTTP
#
# server:
#   Network address to which the server should bind.
#   By default, the value is set to 0.0.0.0 which 
#   allows connection via all IPv4 addresses.
#   address: 
#
#   Server HTTP port. Default port is 8080.
#   port: 8080
#
#   Access log for incoming HTTP requests. Disabled by default.
#   The 'directory' must be set, otherwise logs are written to a
#   temporary server directory. See "Přístupové logy (access log)".
#   tomcat:
#     accesslog:
#       enabled: true
#       directory: ${elza.workingDir}/log
#       pattern: "%h %{X-Forwarded-For}i %l %u %t \"%r\" %s %b %{ms}T"
#       buffered: false
#
elza:
  data:
    # Nastaveni DB
    url: <dbURL>
    user: <dbUser>
    pass: <dbPass>

  attachment:
    # Konfigurace mimetypu pro editaci souboru
    mimeDefs:
      - mimeType: text/plain
        editable: true
        # Generatory pro jednotlive typy souboru
        generators:
         - outputMimeType: application/pdf
           command: txt2pdf {2} {4}
           outputFileName: result.pdf

spring:    
  jpa:
    properties:
      hibernate:
        <dbDialect>

4.6.2. 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.

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

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 (server.servlet.session.cookie.name)

  • maximální délka session (server.servlet.session.timeout)

  • požadavek na zabezpečené spojení (server.servlet.session.cookie.secure)

  • maximální počet vláken pro zpracování požadavků (server.tomcat.threads.max)

Přístupové logy (access log)

Aplikace umí zaznamenávat příchozí HTTP požadavky do tzv. přístupového logu (access log) vestavěného serveru Tomcat. Do logu se pro každý požadavek zapíše jeden řádek – IP adresa klienta, čas, metoda a URL požadavku, návratový kód, velikost odpovědi a doba zpracování. Přístupový log je ve výchozím stavu vypnutý.

Zapnutí se provádí v sekci server.tomcat.accesslog. Kromě vlastního zapnutí je nutné nastavit i cílový adresář (directory). Pokud adresář neuvedete, Tomcat zapisuje logy do dočasného adresáře serveru (/tmp/tomcat.<port>.<...>/logs) a v pracovním adresáři aplikace se tak žádný soubor neobjeví. Doporučujeme použít stejný adresář jako ostatní logy aplikace, tj. ${elza.workingDir}/log.

Příklad kompletního nastavení:

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

Po úpravě konfigurace je nutné aplikaci restartovat. Výsledný soubor má název ve tvaru access_log.RRRR-MM-DD.log a je uložen v adresáři work/log vedle souborů elza.log a siem.log.

Význam jednotlivých parametrů:

  • enabled - zapnutí/vypnutí přístupového logu (true/false)

  • directory - adresář pro ukládání logů. Relativní cesta se vztahuje k dočasnému adresáři serveru, proto doporučujeme uvést absolutní cestu, resp. ${elza.workingDir}/log.

  • prefix, suffix - předpona a přípona jména souboru

  • file-date-format - formát data v názvu souboru; zároveň určuje frekvenci rotace (denní rotace při hodnotě .yyyy-MM-dd)

  • pattern - formát řádku logu (viz níže)

  • buffered - vyrovnávací paměť zápisu. Hodnota false zapisuje záznamy okamžitě (vhodné pro sledování v reálném čase), true je výkonnější při vysokém zatížení.

  • rotate - povolení rotace souborů podle data

Formát záznamu (pattern)

Formát řádku se nastavuje pomocí zástupných znaků serveru Tomcat. Ve výše uvedeném příkladu jsou použity:

  • %h - IP adresa klienta (u požadavků přes reverzní proxy jde o adresu proxy)

  • %{X-Forwarded-For}i - původní IP adresa klienta z hlavičky X-Forwarded-For (vyplněna při přístupu přes reverzní proxy)

  • %l - identita klienta (obvykle nevyplněno, „-„)

  • %u - uživatel ověřený na úrovni servletového kontejneru (viz poznámka)

  • %t - datum a čas požadavku

  • %r - první řádek požadavku (metoda, URL, verze protokolu)

  • %s - stavový kód HTTP odpovědi

  • %b - velikost odpovědi v bajtech

  • %{ms}T - doba zpracování požadavku v milisekundách

Kompletní seznam zástupných znaků je v dokumentaci Tomcat Access Log Valve, popis parametrů server.tomcat.accesslog.* v dokumentaci Spring Boot – Server properties.

Poznámka

Zástupný znak %D uvádí dobu zpracování v mikrosekundách (Tomcat 10.1), pro čitelnost je proto v příkladu použit %{ms}T (milisekundy).

Poznámka

Do pole %u se zapisuje pouze uživatel ověřený na úrovni servletového kontejneru. Při přihlašování přes Kerberos/SSO nebo při interním přihlášení Elza zůstává toto pole prázdné („-„). Pro auditování činnosti konkrétních uživatelů slouží aplikační logy elza.log a siem.log.

4.6.3. Nastavení databáze

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

  • url - připojení k databázi, formát je dle dokumentace JDBC ovladače

  • user - uživatelské jméno

  • pass - heslo pro připojení k databázi

4.6.4. Přílohy

Konfigurace příloh se provádí v sekci 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 mimeDefs definuje typy souborů. Každý typ se konfiguruje pomocí těchto atributů:

  • mimeType - mime-type přílohy

  • editable - příznak, zda je typ editovatelný

  • 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í:

  • outputMimeType - výstupní formát generátoru (například: application/pdf )

  • command - příkaz, který je spuštěn pro provedení transformace

  • 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:
  • {0} - plná cesta do pracovního adresáře

  • {1} - jméno vstupního souboru

  • {2} - jméno vstupního souboru včetně úplné cesty

  • {3} - jméno výstupního souboru

  • {4} - jméno výstupního souboru včetně úplné cesty

4.6.5. 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.

  • elza.upload.max_file_size - maximální velikost jednoho nahrávaného souboru, výchozí hodnota: 25MB

  • 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.

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):

  • 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.

  • 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í.

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 elza.reindex.cron.

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:
  • elza.findingAid.upload.url - cílové URL

  • elza.findingAid.upload.username, elza.findingAid.upload.password - volitelné jméno a heslo pro BASIC autorizaci.

  • 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:
  • elza.output.allowSend: true - povolení odesílání

  • elza.output.senderName: FtOutputSender - určení způsobu odesílání

Kompletní příklad nastavení:

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

Aktualizace správců fondu přes webovou službu

Při zakládání nebo aktualizaci archivního souboru (fondu) přes webovou službu je možné určit, jak se mají aktualizovat oprávnění správců fondu (uživatelů a skupin):

  • elza.webservice.fonds.adminPermissionMode - režim aktualizace správců

Možné hodnoty:

  • FULL_SYNC (výchozí) - zaslaní správci se přidají a stávající správci, kteří nejsou v požadavku, se odeberou. Výsledek přesně odpovídá zaslanému seznamu.

  • ADD_ONLY - zaslaní správci se pouze přidají, stávající oprávnění zůstanou zachována. Oprávnění přidaná administrátorem nejsou aktualizací přes webovou službu odebrána.

Příklad nastavení:

elza:
  webservice:
    fonds:
      adminPermissionMode: ADD_ONLY

4.6.6. Zabezpečení

V aplikaci Elza je možné nastavit několik parametrů týkajících se zabezpečení a metod autentizace uživatelů. Pro nastavení je určena sekce elza.security.

Dostupné metody autentizace uživatelů:

  • autentizace pomocí databáze Elza, tj. uživatelských účtů uložených v Elza v kombinaci s heslem (výchozí metoda)

  • autentizace pomocí LDAP serveru (Active Directory apod.)

  • autentizace na základě hlaviček HTTP požadavků

  • autentizace na základě JWT tokenů

  • autentizace pomocí Kerberos (SPNEGO), umožňuje jednotné přihlášení (SSO) v rámci Windows domény

Jednotlivé metody autentizace je možné kombinovat. Dokumentace pro nastavení jednotlivých metod je v rámci zdrojového kódu Elza, případně je vhodné kontaktovat dodavatele aplikace a požádat o konzultaci.

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.

  • elza.security.logoutUrl - url adresa přechodu