.. _config_peva: ==================== Konfigurace PEvA ==================== Konfigurace PEvA slouží pro čtení seznamu archivních souborů daného archivu. .. code-block:: yaml # Nastavení pro import z PEvA peva: url: https://portal.nacr.cz/peva-external/ws/peva/ username: 610000070 password: XXXXXXX userId: uncz610000070t5454 institutionId: cdd5810c-ac35-49a7-8a74-410982319218 rulesetCode: ZP2015 # volitelně: výraz pro generování interního kódu fondu (viz níže) internalCode: "ABC-#{#fundNumber}" fund: defaultScopes: - CAM - "MUA-GLOBAL" # výchozí administrátoři zakládaných fondů (viz níže) defaultAdminUsers: - 123 defaultAdminGroups: - 45 interval: 3600 batchSize: 100 processing: enabled: true # výchozí administrátoři pro oddělení hlavní instituce (viz níže) # do name se uvádí název NEBO číslo oddělení v PEvA departments: - name: "1. oddělení" adminUsers: - 321 adminGroups: - 54 # další instituce, pro které se stahují fondy institutions: - institutionId: 4ab78684-ef87-4252-b3d4-a1d2a1abc3cd username: 223101010 # výraz pro interní kód fondů této instituce (override hodnoty peva.internalCode) internalCode: "XYZ-#{#fundNumber}" # administrátoři specifičtí pro tuto instituci (override výchozích hodnot) adminUsers: - 678 adminGroups: - 90 # administrátoři specifičtí pro jednotlivá oddělení této instituce # (override hodnot instituce i výchozích hodnot) departments: - name: "Oddělení fondů státní správy" adminUsers: - 876 adminGroups: - 9 Vybraná nastavení: - ``processing.enabled`` - zapnutí/vypnutí stahování z PEvA. - ``interval`` - interval kontroly změn v sekundách. - ``batchSize`` - velikost stránky při stahování seznamu NAD listů. Administrátoři fondu ========================= Při zakládání fondu v Elze lze automaticky nastavit jeho administrátory - uživatele (``adminUsers`` / ``defaultAdminUsers``) a skupiny (``adminGroups`` / ``defaultAdminGroups``). .. warning:: Hodnotami jsou **databázová ID** uživatelů a skupin v Elze (do Elzy se posílají ID, nikoli přihlašovací jména ani kódy). ID je nutné zjistit v cílové instalaci Elzy. Administrátoři se určují na třech úrovních. Použije se vždy **první úroveň, která má pro daný seznam (uživatelé / skupiny) neprázdnou hodnotu**, v pořadí: - **Pro konkrétní oddělení** - nejvyšší priorita. Oddělení se identifikuje jedinou hodnotou ``name``, která se porovnává s **názvem nebo číslem** oddělení v PEvA (entita *Department*, položky *name* / *number*). Uživatel obvykle neví, zda v PEvA zadává název, nebo číslo, proto stačí uvést jednu hodnotu a spáruje se proti oběma. Uvádí se v sekci ``departments`` - buď u hlavní instituce přímo pod ``peva`` (``peva.departments``), nebo u dalších institucí uvnitř dané položky (``institutions[].departments``). Každá položka má ``name`` a volitelně ``adminUsers`` / ``adminGroups``. - **Pro konkrétní instituci** v sekci ``institutions`` (``adminUsers``, ``adminGroups``) - pokud jsou uvedeny, **nahrazují** (override) výchozí hodnoty pro danou instituci. - **Výchozí** v sekci ``fund`` (``defaultAdminUsers``, ``defaultAdminGroups``) - použijí se pro hlavní instituci a pro každou instituci, která nemá vlastní nastavení. Seznamy uživatelů a skupin se vyhodnocují **nezávisle** - fond tak může získat například uživatele z úrovně oddělení a skupiny z úrovně instituce, pokud dané oddělení skupiny nedefinuje. .. note:: Údaje o oddělení nejsou přímo v listu NAD - ten nese jen identifikátor (UUID) oddělení. Aplikace si proto při stahování název i číslo oddělení dotáhne z PEvA (volání *getDepartment*) a uloží je k fondu. Hodnota ``name`` v konfiguraci musí přesně odpovídat názvu **nebo** číslu oddělení v PEvA. Pokud nejsou administrátoři uvedeni, fond se zakládá bez nastavených administrátorů. .. important:: Administrátoři se nastavují **pouze při prvním založení fondu** v Elze. Při následných aktualizacích fondu (opětovné synchronizaci po změně v PEvA) se seznam administrátorů **záměrně neodesílá**, takže oprávnění přiřazená ručně v Elze zůstanou zachována. Elza totiž bere odeslaný seznam ``adminUsers`` / ``adminGroups`` jako úplný (nahrazuje jím stávající oprávnění fondu); kdyby se posílal při každé synchronizaci, ručně nastavená oprávnění by se resetovala. Interní kód fondu (``internalCode``) ===================================== Při odesílání fondu do Elzy lze automaticky vyplnit jeho **interní kód** (``internalCode``). Hodnota se počítá z výrazu uvedeného v konfiguraci pomocí šablony jazyka *Spring Expression Language* (SpEL); dosazovaná část se zapisuje do oddělovačů ``#{ }``. K dispozici je proměnná ``#fundNumber`` s číslem fondu, takže např. výraz:: internalCode: "ABC-#{#fundNumber}" vytvoří pro fond s číslem ``123`` interní kód ``ABC-123``. Výraz se hledá podle instituce fondu: - **Hlavní instituce** (``peva.institutionId``) - použije se ``peva.internalCode``. - **Další instituce** uvedené v sekci ``institutions`` - použije se ``institutions[].internalCode`` dané instituce. Tato hodnota **nahrazuje** (override) ``peva.internalCode``; pokud u instituce není uvedena, interní kód se pro fondy této instituce **negeneruje** (nepřebírá se z hlavní instituce). Pokud výraz pro danou instituci není uveden, fond se odesílá bez interního kódu. .. note:: Interní kód se dopočítává při každém odeslání fondu do Elzy (založení i aktualizace).