1.0.3 • Published 6 years ago

@natlibfi/aleph-record-caretaker v1.0.3

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
6 years ago

A service that applies Melinda-specific conversions when records change in Aleph NPM Version Build Status

Installation

This system requires oracle connections. Check instructions for installing node-oracledb.

Installation in short:

Oracle instantclient installed into /opt/instantclient_12_2

export OCI_LIB_DIR=/opt/instantclient_12_2
export OCI_INC_DIR=/opt/instantclient_12_2/sdk/include

npm install

Running

The tnsnames.ora file must be used for connection. This can be done with TNS_ADMIN environment variable.

Example:

TNS_ADMIN=`pwd` LD_LIBRARY_PATH=/opt/instantclient_12_2/ node index.js

Example of tnsnames.ora

$ cat tnsnames.ora 
tunnel =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
   (CONNECT_DATA =
     (SID = ALEPH20)
   )
 )

This example uses oracle in localhost. The reposityory contains file called tnsnames.ora.template which can be used to make the tnsname.ora with sed, for example:

cat tnsnames.ora.template | sed 's/%HOST%/tunnel/g' | sed 's/%SID%/ALEPH20/g' | sed 's/%PORT%/1521/g'

Configuration

The following environment variables are used to configure the system:

namemandatorydescriptiondefault
Z106_BASESZ106 bases for pollingFIN01|FIN10|FIN11
Z115_BASEZ115 base for pollingUSR00
CURSOR_FILEfile for saving the polling cursors.aleph-changelistener-cursors.json
Z106_STASH_PREFIXfile for saving intermediate info about Z106.z106_stash
POLL_INTERVAL_MSwait time between pollings5000
ORACLE_USERxoracle username-
ORACLE_PASSxoracle password-
ORACLE_CONNECT_STRINGxoracle connection string-
X_SERVERxAleph X-server url-
ALEPH_CARETAKER_USERxAleph username-
ALEPH_CARETAKER_PASSxAleph password-
MELINDA_APImelinda api endpointhttp://libtest1.csc.fi:8992/API

Since the Z106 resolution is only 60 seconds in Aleph, the changes that have already been handled are saved so that nothing is handled multiple times.

The ORACLE_CONNECT_STRING must match the connection string in the tnsnames.ora file. With above tnsnames.ora it should be "tunnel".

License and copyright

Copyright (c) 2017 University Of Helsinki (The National Library Of Finland)

This project's source code is licensed under the terms of Apache License 2.0.