Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

reg service: add a simple mechanism to update OAI content #192

Open
pdowler opened this issue Oct 31, 2024 · 1 comment
Open

reg service: add a simple mechanism to update OAI content #192

pdowler opened this issue Oct 31, 2024 · 1 comment

Comments

@pdowler
Copy link
Member

pdowler commented Oct 31, 2024

Currently, the OAI content is a set of xml files that are mounted into the container at deployment time.

The editor of those files has to maintain the timestamps (OAI datestamp and VOResource updated attr) manually and make new versions live at about the same time as the manually entered timestamps.

There is currently no back end database and for most uses that would be an unnecessary dependency/burden.

@pdowler
Copy link
Member Author

pdowler commented Oct 31, 2024

Simple quick and dirty proposal: add support for an authorized user to update a record through the REST API. The workflow would be roughly:

  1. GET /reg/oai?verb=GetRecord&metadataPrefix=ivo_vor&identifier=ivo://example.net/record
  2. manually edit the OAI-PMH document
  3. PUT /reg/oai

The PutAction would check authorization, validate the input document, set the OAI-PMH datestamp and the VOResource updated attribute to the current time, and write the record back to the underlying filesystem. PUT could both create new and overwrite existing records.

aside: Tools to help with (2) edit could be created, but the value-to-effort ration seems low to me...

For a persistent registry, the deployer is responsible for mounting a writable external filesystem into the container; if they deploy multiple instances the fs has to be shared between all instances.

This feature would be enabled by an optional configuration of an admin user with permission to put records. If an admin is not configured, the content is immutable (as it is now).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant