-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Motivation
Why are we doing this? What user stories does it support? What is the expected outcome?
Currently, there is no support for different record data models (f.e. LOM
, Marc21
). Modules that bring support for other record data models should also have their own elasticsearch index (f.e. lom-records
, marc21-records
), database tables, services, etc., as the metadata format differs from rdm-records
.
This change would allow other modules to hook into the invenio-oaiserver
module and provide the respective records via the OAI
protocol, without having to implement this themselves.
Outcome is to have one endpoint for a combined harvesting possibility of all records - no matter the model. Further filtering can be achieved via sets.
Summary
What are you proposing to change (high-level overview only)?
- Introduce data model configuration variable(s) which other modules can extend
- f.e.
OAISERVER_DATA_MODELS = { 'rdm_records': { 'es_index': 'rdmrecords-records', 'record_cls': invenio_rdm_records.records.api:RDMRecord, ... } }
- Adapt implementation of
OAI-PMH
verbs to take data model configuration into account - Provide endpoint per data model and/or one global endpoint
Resources
Which resources do you have available to implement this RFC and what is your overall timeline?
2 days per week from my side (as of right now)