-
Notifications
You must be signed in to change notification settings - Fork 0
Soupis konfiguračních parametrů
smallcubes edited this page Jan 29, 2024
·
35 revisions
Pro aplikaci existuje jeden konfigurační soubor umístěný v adresáři ~.sdnnt/config.json
. Struktura souboru je následující.
- Blok pro klienta - řídí chování klientské aplikace
- Blok určený pro stranu serveru - řídí chování serverovské části aplikace
{
"client": {}
"server": {}
}
Řídí zobrazení / nezobrazení částí aplikace. Jednotlivé položky jsou následující:
{
"client": {
// Řídí zobrazení přihlašovacího menu. Buď pouze jednoduché přihlášení nebo možnost výběru (jednoduché nebo EduID)
"simplelogin": true | false
// Počet položek v žádosti, po tomto limitu se objeví uživateli hláška
"maximumItemInRequest":60,
// Konfigurace záložek
"homeTabs": ["about", "news", "readers", "authors", "libraries", "api"],
// Zobrazení odkazu do báze DNT
"dntSetAlpehLinks": true | false,
// Maximální počet záznamů v rule notifikaci
"numberOfItemsInRulenotification": 11000,
// Maximální počet rule notifikací
"numberOfRuleBasedNotifications": 10,
// application logo - url to application logo
"logo": "assets/img/logo-sdnnt-blue.png",
// zobrazované identifikátory v tabulce indentifikátorů
"identifiers": ["015a", "020a", "022a"],
// povolené třídění
"sorts":{
// výsledky hledání
"sort": [
{"field": "score", "dir": "desc"},
{"field": "title_sort", "dir": "asc"},
{"field": "title_sort", "dir": "desc"},
{"field": "date1_int", "dir": "asc"},
{"field": "date1_int", "dir": "desc"},
{"field": "datestamp", "dir": "asc"},
{"field": "datestamp", "dir": "desc"}
],
// možnosti tříděni u kurátora a hlavního kurátora
"sort_account": [
{"field": "deadline", "dir": "asc"},
{"field": "deadline", "dir": "desc"},
{"field": "priority", "dir": "asc"},
{"field": "priority", "dir": "desc"},
{"field": "datum_zadani", "dir": "asc"},
{"field": "datum_zadani", "dir": "desc"},
{"field": "datum_vyrizeni", "dir": "asc"},
{"field": "datum_vyrizeni", "dir": "desc"}
],
// možnosti třídění u běžného uživatele
"user_sort_account": [
{"field": "datum_zadani", "dir": "asc"},
{"field": "datum_zadani", "dir": "desc"},
{"field": "datum_vyrizeni", "dir": "asc"},
{"field": "datum_vyrizeni", "dir": "desc"}
]
},
// Nastavení karet na úvodní obrazovce
"homeCards": [
{"field": "A", "type": "stav", "visible": true},
{"field": "N", "type": "stav", "visible": true},
{"field": "PA", "type": "stav", "visible": true},
{"field": "NL", "type": "stav", "visible": false},
{"field": "dnnto", "type": "licence", "visible": true},
{"field": "dnntt", "type": "licence", "visible": true}
]
}
}
{
// Adresa na solr
"solr.host": "solr.host.address",
// Externí konfigurace pro řízení pro cookies - Použitá komponenta https://github.com/orestbida/cookieconsent
"cookieconsent-init_cs": "/<path_to_config>/cookie.js",
"cookieconsent-init_en": "/<path_to_config>/cookie.js",
"server": {
// Maximální položek v žádosti přes API
"api":{
"maximumItemInRequest":2000
},
// Řízení harvestovacích procedur
"OAIHavest": {
// Adresa OAI
"url": "http://aleph.nkp.cz/OAI",
// Pocet opakovani
"numrepeat": 15,
// Cekani mezi opakováními
"seconds" : 10,
"results":{
"SKC_1": "request" | "state", // konfigurace toho jak maji koncit pripady následníků "request" = žádost, "state" - rovnou změna stavu
"SKC_2": "request" | "state",
"SKC_3": "request" | "state",
"SKC_4a": "request" | "state",
"SKC_4b": "request" | "state"
}
},
// Přihlašovací link na shibboleth nebo wayf
"shibiplink":"shib_login_callback?shib=default",
// Logout link
"shiblogoutlink":"shiblogoutlink":"https://sp./Shibboleth.sso/Logout?return=https://sdnnt.nkp.cz",
// Konfigurace institucí
"institutions":[
{
// Akronym instituce
"acronym":"MZK",
// Plne jmeno
"name":"Moravska zemska knihovna"
}
],
// Konfigurace pro mailový server
"mail": {
"from.user": "[email protected]",
"from.name": "SDNNT Admin user",
"smtp.user": "smtp@user",
"smtp.pass": "smtp@pass",
"smtp.host" : "smtp.adddress",
"smtp.auth": true,
"smtp.starttls.enable": true,
"smtp.port":587
},
// Konfigurace mailů pro registraci uživatelů
"registration": {
// Předmět
"subject": "Registrace uzivatele " ,
// Zda se posílá čistý plain text či html
"content.html": true
},
// Mail při resetu hesla, admin akce
"passwordreset": {
"subject": "Reset hesla" ,
"content.html": true
},
// Mail při resetu hesla - uživatelská akce
"resetlink": {
"subject": "Zadost o resetovani hesla" ,
"content.html": true
},
// Notifikace
"notificationemail": {
"subject": "Notifikace o zmene stavu" ,
"content.html": true
},
// Dodatecna konfigurace pro granularitu
"granularity":{
"public_license": 1912 // od verejneho roku jsou pridelovany licence
"se":{ // aktuálně se rozdělení děl na p/np řídí dle pole: 310 (MARC)
"p": { // pravá periodika = vychází 1x ročně nebo nepravidelně
"dnnto_dnnto":2012 // rozhodny rok pro pridelovani licence dnnto - pouze prava periodika, pro záznam s licencí DNNTO
},
"np":{ // nepravá periodika = vychází 2x ročně nebo víc
"dnnto_dnnto":2002, // rozhodny rok pro pridelovani licence dnnto - pouze neprava periodika, pro záznam s licencí DNNTO
"dnnto_dnntt":2007, // rozhodny rok pro pridelovani licence dnntt - pouze neprava periodik, pro záznam s licencí DNNTO
"dnnto_dnntt_enabled":true, // priznak, ktery rozhoduje zda ma pridelovat dnntt licence, pro záznam s licencí DNNTO
"dnntt_dnntt": 2007 // rozhodny rok pro pridelovani licence dnntt pokud titul ma licenci dnttt, pro záznam s licencí DNNTT
}
},
"bk":{
"dnnto_dnnto":2002, // rozhodny rok pro pridelovani licence dnnto, pro záznam s licencí DNNTO
"dnnto_dnntt":2007, // rozhodny rok pro pridelovani licence dnntt, pro záznam s licencí DNNTO
"dnnto_dnntt_enabled":true, // priznak, zda se ma pridelovat licence dnntt, pro záznam s licencí DNNTO
"dnntt_dnntt":2002 // rozhodny rok pro pridelovani licence dnntt, pro záznam s licencí DNNTT
},
"x_state":{ // prebirani priznaku public/private (v K5) pro jednotlive knihovny
"nkp":true,
"mzk":true,
"svkhk":true,
"knav":false
}
},
// Konfigurace pouzivana v procesech, ktere se dotazuji na krameria
// 1 - Proces ziskani granularity
// 2- Proces generovani PXN zadosti - kontrola volnych del
"check_kramerius":{
"buffersize": 98, //maximalni pocet soubezne kontrolovanych del, kontrola probiha oproti Kramerius endpoint ~/search
urls":{
// regularni vyrazy reprezentuji prefix digitalni knihovny
"https?://ndk.cz/.*":{
"description":"Narodni digitalni knihovna NKP", // popis digitalni knihovny
"api":"https://kramerius5.nkp.cz/search", //api endpoint
"client":"https://ndk.cz/uuid/{0}", // sablona pro vyrendrovani linky do ui
"acronym":"nkp", // akronym pro digitalni knihovnu - odpovida zkratce uvedene v registru krameriu
"sigla":"ABA000", // SIGLA svazana s digitalni knihovnou - odpovida zkratce uvedene v registru krameriu
"skip": false // true - pokud se ma link pri zpracovavani preskocit
},"https?://kramerius.*.nkp.cz.*":{ // alternativni linky pro nkp
"description":"Narodni knihovna praha NKP",
"api":"https://kramerius5.nkp.cz/search",
"client":"https://ndk.cz/uuid/{0}",
"acronym":"nkp",
"sigla":"ABA000",
"skip": false
},
....
}
},
// Konfigurace workflow
"workflow" :{
// eskalace
"escalation" :{
// Eskalace pro žádosti typu VNZ
"VNZ" : {
"value": 1,
"unit": "day"
},
// Eskalace pro žádosti typu VNL
"VNL" : {
"value": 1,
"unit": "day"
},
// Eskalace pro žádosti typu NZN
"NZN" : {
"value": 1,
"unit": "day"
}
},
// Periody
"periods": {
// Zda se má přepnout do debug modu a umožnit konfigurovat periody mezi přepnutím žádostí
"debug": true | false
// konfigurace nzn žádosti a lhůty pro vyřízení, konfigurují se pracovní dny
"period_nzn_0_5wd": {
// 5 pracovních dnů
"value": 5
},
// konfigurace nzn žádosti a přenutí po 6 měsících
"period_nzn_2_6m" : {
// 6 kalendářních měsíců
"value": 6
},
// definuje hranici pro překlopení děl NZN
"period_nzn_1_12_18" : {
// Definuje seznam měsíců které spadnou do zimního období.
// Prní den následujícího měsíce dojde k překlopení t.j. - 1.3
"winter": "9,10,11,12,1,2",
// Definuje seznam měsíců pro které platí letní odbdobí
// První den následujícího měsíce dojde k překlopení t.j - 1.9.
"summer":"3,4,5,6,7,8"
},
// Konfigurace pro žádost typu VN, 28 kalendářních dnů
"period_vn_0_28d": {
// 28 kalendářních dnů
"value":28
},
// Konfigurace pro žádost typu VNL, 5 pracovních dnů
"period_vln_0_5wd": {
// 5 pracovních dnů
"value":5
},
// Konfigurace pro žádost typu VNL, 10 kalendářních dnů
"period_vnl_1_10d": {
// 10 kalendářních dnů
"value":10
},
// Konfigurace pro žádost typu VNL, 18 měsíců
"period_vln_2_18m": {
// 18 měsíců
"value":18
},
// Konfigurace pro žádost typu VNL, 5 pracovních dnů
"period_vln_3_5wd": {
"value":5
},
// Konfigurace pro žádosti typu PXN
"period_px_0_5wd" : {
// 5 pracovních dnů
"value":5
}
// Konfigurace pro žádosti typu DXN
"period_dx_0_5wd" : {
// 5 pracovních dnů
"value":5
},
// konfigurace svátků pro správný výpočet pracovních dnů (každý den mimo sobotu, neděli a svétek definovaný v konfiguraci)
"holidays":[
{
"day": 1
"month":1
},
{
"day": 1
"month":5
}
.......
]
}
}
},
// Nastavení jobů
"jobs": {
// Načtení granularity z kramériů
// Nastavení pro spouštění workflow
"worklow": {
"logger":"logger_name", // Jméno loggeru
"type": "workflow",
// Qartz pattern - http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html#format
"cron": "quartz_pattern"
},
// kontrola typu a mista vydani
"parovaní_kontrola_typu": {
"type": "skc_type_check",
"cron": "quartz_pattern",
"logger": "update_kontrola",
"results":{
"SKC_1": "request" | "state",
"SKC_2": "request" | "state",
"SKC_3": "request" | "state",
"SKC_4a": "request" | "state",
"SKC_4b": "request | "state""
}
},
// Doplneni granularity
"kontrola_granularity": {
type": "refresh_granularities",
"logger":"refresh_granularities",
"cron": "quartz_pattern"
},
// Nastavenení stavů, dplňuje pouze ty části granularity u kterých není vyplněný stav
"kontrola_granularity": {
type": "setstates_granularities",
"logger":"setstates_granularities",
"cron": "quartz_pattern"
},
// Prochazeni pripadu SKC_4 a nachazeni nasledniku
SKC_4:{
"logger":"logger_name", // Jméno loggeru
"type": "skc_4",
"cron": "quartz_pattern",
"results":{
"SKC_1": "request" | "state",
"SKC_2": "request" | "state",
"SKC_3": "request" | "state",
"SKC_4a": "request" | "state",
"SKC_4b": "request" | "state"
}
},
// Kontextová informace z krameria
"krameriove_kontextova_informace": {
"logger":"logger_name", // Jméno loggeru
"type":"kramerius_px_check",
"cron": "quartz_pattern",
// Blok iterace, umožňuje definovat přes co se bude iterovat při kontrole
"iteration": {
// Rozsah let pres ktery se ma iterovat
"date_range": "[* TO 2020]",
// stavy pres ktere se ma iterovat
"states":["A","PA"],
},
// Blok pro výstup - umožňuje definovat výstupní akci
"results": {
"ctx": true, // doplni kontextovou informaci
"state":"A" // zmeni stav
}
},
// Importni proces - nové záznamy
"euipo_iocp": {
"type": "euipo_iocp",
"cron": "quartzpattern",
"iteration":{
"maxbkyear":2023, // maximalni rok pokud se ho podarilo naparsovat - jedna se o cislo
"nonparsabledates":[ "1.*", "200.*"] // regularni vyrazy pokud datum neni definovany cislem
},
"results": {
"folder": "/data/euipo" // kde se mají data uložit
}
},
// Update proces - změny, které je nutné provést v EUIPO OoC
"euipo_uocp": {
"type": "euipo_uocp",
"cron": "quartzpattern"
},
// Příklad hromadných posunů stavu a licencí
// Dokumenty pro vyrazeni - formát BK
// Vytvoření výběru (výber se objeví na webu aplikace pro kontrolu)
"OznaceniPosunStavu2023_BK_N": {
"type": "curator_action",
"cron": "quartz_pattern",
"iteration":{
"filters":[ "fmt:BK", "date1_int:[2004 TO *]", "kuratorstav:(A OR PA)", "license:dnntt"]
},
"results":{
"action":"set",
"name":"PosunStavu2023/N"
}
},
// Posun stavů pro vytvořený výběr
"PosunutiStavu2023_N":{
"type": "setstate_curator_action",
"cron": "quartzpattern",
"iteration":{
"name":"PosunStavu2023/N"
},
"results":{
"curatorstate":"N"
// nebo "license": "dnnto"
}
},
// Notifikace pro den
"notifikace_den": {
"logger":"logger_name", // Jméno loggeru
"type": "notifications",
"interval": "den",
"cron": "quartz_pattern"
},
// Notifikace pro tyden
"notifikace_tyden": {
"logger":"logger_name", // Jméno loggeru
"type": "notifications",
"interval": "tyden",
"cron": "quartz_pattern"
},
// Notifikace mesic
"notifikace_mesic": {
"logger":"logger_name", // Jméno loggeru
"type": "notifications",
"interval": "mesic",
"cron": "quartz_pattern"
}
}
},
// Při dotahování granularity a rozhodování o licencích ročníků periodik se bere v potaz frekvence vydávání
// řízeno polem marc_008 pozice 18 a 19.
"granularity.se.00818":"r",
"granularity.se.00819":"b,c,d,e,f,j,q,t,s,m,w,z",
// konfigurace dohledatelnosti záznamů, řídí se markovým polem 008. Pokud je uvedeno rozmezí, rozhodující je horní mez
"search": {
"fromYear": 1910 // Spodní mez od které se mají
"yearsBK": 12 // Počet roků od aktuálního roku - Knihy
"yearsSE": 12 // Počet roků od aktuálního roku - Periodika
}
}