#760: BibHarvest: add holding pen integration
-------------------------------------------+--------------------
Reporter: jlavik | Owner: jlavik
Type: defect | Status: new
Priority: major | Milestone:
Component: BibHarvest | Version:
Keywords: INSPIRE ingestion holding-pen |
-------------------------------------------+--------------------
When automatically ingesting content from trusted/untrusted sources (see
ticket:758) any updates to existing meta-data or new records from
"untrusted" sources will often need human approval. This can be achieved
through creation of holding-pen (HP) versions of records and automatic
ticket generation for external ticketing systems (like RT). Support for RT
is already present in the BibCatalog module.
* Currently, HP entries are only generated through BibUpload (-o) and must
be associated with an existing record. In many potential use-cases such
information is not available or applicable, for example when harvesting
new records from "untrusted sources", so the HP API should have support
for HP entry generation without any records associated with it.
* Furthermore, for simplicity, this generation of HP entry should be able
to go around the BibUpload/BibSched queue - flowing directly into the HP
DB table. This should be safe since we're not at this stage actually
making any changes to any actual records.
* An RT ticket to some queue specified in the configuration can optionally
be generated on harvested records, containing a link/id to the holding-pen
revision created and (if applicable) the related record id.
The holding-pen reference should allow RT users to access the holding-pen
revision, via a link (RT already allows this functionality), inside a
special mode in BibEdit allowing cataloguers to view the changes to
existing records or the new record candidate to be inserted into the
database. This URL call containing the holding-pen id should automatically
take users to this mode in BibEdit (more detailed in ticket:759).
This entire process of evaluating ingestion from non-trusted sources
should be accessible through an API, allowing requests from both harvests
and other sources to go through this workflow.
For example: all of the above is kicked off by calling something like
{{{invenio.revise(new stuff, requestor/user)}}}. RT tickets generated this
way should make the user contact information flow into the ticket as
requestor, to allow easy communication between requestor and handlers.
Finally, that call is wrapped in a URL handler so we can POST to it
(possibly in {{{/inspire}}} namespace).
--
Ticket URL: <http://invenio-software.org/ticket/760>
Invenio <http://invenio-software.org>