Konfigurace aplikace
Společné nasazení vychází z repozitáře nkp-deploy. Jeho adresář .kapp se připojuje do backendových a webových kontejnerů jako /root/.kapp.
Backendová konfigurace
Java služby čtou:
<user-home>/.kapp/app.conf
V Docker Compose jde o /root/.kapp/app.conf, na hostiteli o nkp-deploy/.kapp/app.conf.
{
"workflow": {
"publicYear": 110,
"onsiteYear": 50,
"authorDeadEnoughYear": 70
},
"solr": {
"url": "http://solr-kappScheduler:8983/solr"
},
"workflowUpdate": {
"enabled": true,
"url": "http://updater:8081",
"port": 8081,
"token": "",
"maxBatchSize": 100,
"requestTimeoutSeconds": 35,
"responseTimeoutSeconds": 30
},
"instances": [
{
"acronym": "nkp",
"url": "https://api.kramerius7.nkp.cz/search/api/client/v7.0",
"apiVersion": "v7",
"solrCloud": true,
"physicalLocations": ["BOA001"],
"ROWS": 100
}
],
"touchStoreConfig": {
"baseDir": "/touchstore",
"factory": "solr"
}
}
workflow
publicYearje počet let od vydání, po kterém lze titul bez přesnějšího autorského údaje automaticky považovat za veřejný.onsiteYearvymezuje období od vydání, ve kterém titul zůstává automaticky on-site.authorDeadEnoughYearje počet let od úmrtí posledního autora od kdy je dílo považované za veřejné.
Hranice se počítají proti aktuálnímu kalendářnímu roku. Změna hodnot ovlivní následující běh updateru nad existujícími daty.
solr
solr.url je základní URL bez názvu core. Scheduler, harvester a updater k ní připojují názvy titles, authors a contracts.
workflowUpdate
urlpoužívá webová aplikace pro interní požadavky na cílený přepočet workflow,enabledumožňuje cílené požadavky z webové aplikace vypnout,portje interní HTTP port služby updateru,tokenje volitelný sdílený Bearer token; prázdná hodnota vypne kontrolu tokenu,maxBatchSizeomezuje počet PIDů v jednom požadavku,requestTimeoutSecondsomezuje čekání HTTP klienta na odpověď updateru,responseTimeoutSecondsurčuje, jak dlouho endpoint čeká na zpracování fronty, než vrátí HTTP 202.
Volání je best-effort. Neúspěšný požadavek nezruší změnu provedenou ve webové aplikaci; titul později zpracuje úplný běh updateru.
instances
Každá položka představuje jednu zdrojovou instanci Krameria:
acronymje stabilní identifikátor zdroje, napříkladnkpnebomzk; zapisuje se dodigital_librarya používá se v políchlicenses_<acronym>,urlje základní klientské API,apiVersionpodporujev5nebov7a označuje verzi Krameria,solrCloudurčuje stránkovací identifikátor API v7 (compositeIdmístopid),physicalLocationsjsou sigly relevantní pro zdroj,ROWSje velikost stránky, výchozí hodnota je100.
Změna acronym vytvoří novou větev timestampů a z pohledu harvesteru nový zdroj.
touchStoreConfig
factory: "solr"zjišťuje existenci dokumentů přímo vtitles; je to konfigurace použitá vnkp-deploy,factory: "file"používábaseDirpro soubory PID, root PID, MODS, MD5, zdroje a sigel.
Souborový režim může u velkého objemu vyčerpat inody. baseDir musí být v kontejneru trvale připojený.
Timestampy harvestu
Každá instance má čas posledního úspěšného běhu v:
<user-home>/.kapp/timestamps/<acronym>/timestamp
API v5 filtruje podle modified_date, API v7 podle indexed. Chybějící timestamp znamená plnou sklizeň dané instance.
Konfigurace webu, Keycloaku a webových oprávnění je popsána v technické dokumentaci webové a API vrstvy.
Smlouvy
PDF smluv jsou v adresáři připojeném přes .kapp/contracts. Metadata jsou v core contracts. Licence smlouvy určená pro konkrétní Kramerius musí mít prefix knihovny a podtržítko:
nkp_<licence>
mzk_<licence>
Updater prefix použije k výběru pole licenses_<acronym> a přidá chybějící licenci titulům odpovídajícím podle ČČNB nebo ISSN.
Tabulkové importy
TSV importer očekává:
<user-home>/.kapp/tsv-mappings.json
<user-home>/.kapp/Data
Samostatný last-author updater přijímá vstupní TSV/Excel export a vlastní CLI parametry; viz Tabulkové importy a poslední autor.
Citlivé hodnoty
Do Git repozitáře nepatří reálné přístupové tokeny, Keycloak secrets ani produkční klíče pro analýzu smluv. Soubor .kapp/config.json musí mít produkční API klíč dodaný provozním secret mechanismem.