Workshop SIP2-Modul: Einrichtung eines lokalen Edge-SIP2-Moduls zu Testzwecken
1. Einrichten des lokalen SIP2-Containers in einer Dockerumgebung mit Docker Compose
Richten Sie sich zunächst eine lokale Dockerumgebung ein:
Offizielle Docker-auf-Windows Anleitung
a) Erstellen und Anpassen der Konfigurationsdateien des Moduls
Hier finden Sie die Modul-Dokumentation auf Github
Erstellen Sie ein Verzeichnis “sip2test” und legen darin folgende Struktur bzw, Dateien an:
(für die Aktivierung der Verschlüsselung mit Stunnel erstellen Sie einen privaten als auch öffentlichen Schlüssel mit openssl → sip2-test.crt
, sip2-test.key
)
sip2test
conf
sip2.conf
sip2-tenants.conf
sip2-test.crt
sip2-test.key
docker-compose.yml
sip2.conf
{
"port": 6443,
"okapiUrl": "<https://folio.url.com/okapi>",
"//1_comment": "start stunnel config",
"netServerOptions":{
"ssl":true,
"pemKeyCertOptions":{
"certPaths":["/sip2conf/sip2-test.crt"],
"keyPaths":["/sip2conf/sip2-test.key"]
}
},
"//2_comment": "end stunnel config",
"tenantConfigRetrieverOptions": {
"scanPeriod": 300000,
"stores": [{
"type": "file",
"format": "json",
"config": {
"path": "/sip2conf/sip2-tenants.conf"
},
"optional": false
}]
}
}
sip2-tenants.conf
{
"scTenants": [
{
"scSubnet": "172.16.0.0/12",
"tenant": "<tenant-id>",
"errorDetectionEnabled": true,
"charset": "UTF-8"
}
]
}
Ggfs. muss hier der IP-Bereich der Dockerumgebung angepasst werden.
b) Bauen und starten des SIP2-Containers
Nun wird in der Datei docker-compose.yml die Bauanleitung des Moduls definiert.
Verfügbare Image-Versionen des Modules finden wir auf:
Offizielle Releases auf Dockerhub
Snapshot Releases auf Dockerhub
docker-compose.yml:
version: '2'
services:
edge-sip2-folio:
container_name: edge-sip2
image: folioci/edge-sip2:latest
restart: unless-stopped
ports:
- "6443:6443"
volumes:
- ./conf:/sip2conf
command: -conf /sip2conf/sip2.conf
Bauen und starten des Containers mit:
docker compose up -d
2. SIP2-Konfigurationen in FOLIO
Sollten Sie das SIP2-Modul nicht an eine lokale FOLIO-Installation anbinden wollen, klären Sie bitte die nächsten Schritte im Vorfeld mit Ihren Systemadministratoren ab. Gffs. können diese die Konfiguration Schritte für Sie umsetzen.
Es wird ein Adminnutzer und ggfs, eine OKAPI-CLI benötigt.
Als OKAPI-CLI bietet sich zB. das Tool der LRZ-Kollegen an: https://gitlab.lrz.de/bib-public/okapiclient
a) Anlegen eines Systemnutzers
Das Modul benötigt einen Systemnutzer in FOLIO, der über die entsprechenden Rechte verfügt.
In unserem Bespiel “sip2systemuser” und nicht das Setzen des Passwortes vergessen.
b) Anlegen der generellen SIP2-Konfiguration
Nun wird die generelle SIP2-Konfiguration angelegt. (Modul-Dokumentation auf Github )
echo '{
"module": "edge-sip2",
"configName": "acsTenantConfig",
"enabled": true,
"value": "{\"supportedMessages\": [{\"messageName\": \"PATRON_STATUS_REQUEST\",\"isSupported\": \"Y\"},{\"messageName\": \"CHECKOUT\",\"isSupported\": \"Y\"},{\"messageName\": \"CHECKIN\",\"isSupported\": \"Y\"},{\"messageName\": \"BLOCK_PATRON\",\"isSupported\": \"N\"},{\"messageName\": \"SC_ACS_STATUS\",\"isSupported\": \"Y\"},{\"messageName\": \"LOGIN\",\"isSupported\": \"Y\"},{\"messageName\": \"PATRON_INFORMATION\",\"isSupported\": \"Y\"},{\"messageName\": \"END_PATRON_SESSION\",\"isSupported\": \"Y\"},{\"messageName\": \"FEE_PAID\",\"isSupported\": \"Y\"},{\"messageName\": \"ITEM_INFORMATION\",\"isSupported\": \"Y\"},{\"messageName\": \"ITEM_STATUS_UPDATE\",\"isSupported\": \"Y\"},{\"messageName\": \"PATRON_ENABLE\",\"isSupported\": \"N\"},{\"messageName\": \"HOLD\",\"isSupported\": \"N\"},{\"messageName\": \"RENEW\",\"isSupported\": \"Y\"},{\"messageName\": \"RENEW_ALL\",\"isSupported\": \"Y\"}, {\"messageName\": \"REQUEST_SC_ACS_RESEND\",\"isSupported\": \"Y\"}],\"statusUpdateOk\": false,\"offlineOk\": false,\"patronPasswordVerificationRequired\": true}"
}' | ./OkapiCLI.py -v -u https://folio.url.com/okapi -U admin -p passwd -t tenant-id -i raw -r "/configurations/entries" -m post
c) Anlegen einer individuellen Servicestellen-Konfiguration
Detailierte Modul-Dokumentation auf Github
echo '{
"module": "edge-sip2",
"configName": "selfCheckoutConfig.<UUID-servicepoint>",
"enabled": true,
"value": "{\"timeoutPeriod\": 5,\"retriesAllowed\": 3,\"checkinOk\": true,\"checkoutOk\": true,\"acsRenewalPolicy\": false,\"libraryName\": \"UB Mainz\",\"terminalLocation\": \"<UUID-servicepoint>\"}"
}' | ./OkapiCLI.py -v -u https://folio.url.com/okapi -U admin -p passwd -t tenant-id -i raw -r "/configurations/entries" -m post
3. Einrichtung von SIP2-Test-Clients
Folgend Beispiele zur Einrichtung eines SIP2-Test-Clients:
a) RDBTest
b) SIP-Testing-Tool
Homepage: https://clcohio.org/sip-testing-tool/
Hinweis:
Der Location identifier muss im Namen einer Servicestellen-Konfiguration enthalten sein, damit wird beim Login Request (CP=Location identifier) die jeweilige Konfiguration geladen. Sonst schlägt bspw. ein SC Status Request direkt fehl, da keine Konfiguration geladen werden kann.
Alternativ kann eine “Fallback”-Konfiguration (selfCheckoutConfig.) angelegt werden.