Skip to content

DBCDK/rr-oai

Repository files navigation

RawRepo OAI

This is a system of 3 services that in conjunction implements [http://www.openarchives.org/OAI/openarchivesprotocol.html](OpenArchive OAI)

This system is built upon data from https://github.com/DBCDK/rawrepo

The services are

  • setmatcher
  • formatter
  • service

The specification allows for sets, which the setmatcher is accountable for transforming into lists, that the service can provide to the user.

The setmatcher is hooked up upon a queue in https://github.com/DBCDK/rawrepo where it gets notified of all the records that has been changed. It https://github.com/DBCDK/rawrepo-record-service-connector/ the record and runs a JavaScript upon the https://www.loc.gov/standards/iso25577/ XML record listing which sets this record is a member of if any. This is written to a database for later use.

The service is exposed to the user as the only entrypoint. It implements OAI 2.0, and exposes the lists generated by setmatcher. The protocol has been extended to accommodate for free/non-free datasets. The protocon has an identity parameter that is a triple of {userid}:{group}:{password} the group is the agency that pays for the access. This can also be sent as h HTTP request header Idenitiy, but the query parameter overrides the request header. IP based authentication is also an option.

Anonymous access to the free sets is acquired by not sending any identity. IP based authentication is tried, but if that fails, default authentication is used.

When using the verb (OAI command) called GetRecord or ListRecords then the final of the three services (formatter) is in play. It is a JavaScript formatter that fetches the record in question from RawRepo, just like setmatcher. Given a format (currently only oai_dc and marcx) it produces an XML document, to embed in the service response.

About

Rawrepo oai migrated to payara-full

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages