Skip to content

SciCatProject/oai-provider-service

Repository files navigation

OAI-PMH Service

Build Status DeepScan grade Known Vulnerabilities

Credit upstream author hatfieldlibrary/oai-provider-service.

OAI-PMH Service is a Nodejs Express application that supports multiple, configurable OAI-PMH version 2.0 data providers.

OAI-PMH Service borrows from the Modular OAI-PMH Server, University of Helsinki, The National Library of Finland.

Dependenices

  • Node 8.9.4+
  • Typescript 2.7.2+
  • npm 5.6.0+

Capabilities

Supports Identify, ListMetadataFormats, GetRecord, ListIdentifiers and ListRecords. The optional from and until arguments are supported for selective harvesting with YYYY-MM-DDThh:mm:ssZ granularity. ListSets is not supported.

Install It

npm install

Configure It

The service uses dotenv to import variables into the environment and from the top level .env file (in the production dir), a variable HOST_CONFIGURATION is defined which points to a JSON file, defining port and host for the service itself. If multiple providers are desired, then the definition of HOST_CONFIGURATION should be moved to the provider level. At this time, we do not require multiple providers.

Run It

Run in development mode:

npm run dev

Routes:

The Express server will start on default port 3000.

PUT Records:

Add new records to your mongodb instance by HTTP PUT using the following route:

  • http://localhost:3000/scicat/Publication

Run in production mode:

At the simplest level:

npm run compile
npm start

The gulp tasks compile Typescript and copy files to dist.

The project can be deployed to a production server and started with node index from within dist. Runtime configurations can be adjusted using .env and (recommended) external configuration files created for your environment. We typically run as server daemon using forever, or some tool to assure that the server runs continuously.