Spike: How will deleted records be handled?

Description

Currently the FOLIO repository doesn’t support deleted records due to impossibility of deleting MARC records via the user interface. However, as Inventory records are going to be considered and holdings with items will be included into the OAI-PMH feed, FOLIO should allow configuration of transient and persistent deletion support as well to let Discovery Systems know when the holding/item record is removed from the repository.

  • Instance (both in inventory and SRS) records still can't be deleted from the UI right now, so it seems that removed records might be determined only by MARC Leader 05 - Record status equal to "d".

  • In terms of holdings and items, which are going to be transferred via OAI-PMH as well, these records can be deleted easily via UI and no track of their existence is left in the database.

What needs to be done is to research the FOLIO existing mechanisms of database history tracking (if any) and to decide on the approach of deleted records support in OAI-PMH. Describe the approach on the new wiki page.

Please, see official documentation http://www.openarchives.org/OAI/2.0/openarchivesprotocol.htm#DeletedRecords to dive into details

Environment

None

Potential Workaround

None

Checklist

hide

TestRail: Results

Activity

Show:

Mikhail FokanovApril 6, 2020 at 7:40 AM

As the result of the spike it was decided to use additional column for soft-delete. Implementation started by .

Mikhail FokanovMarch 27, 2020 at 9:48 PM

The spike was reviewed. , if all problems with insert/update via view are resolved it can be closed.

Dmytro PopovMarch 19, 2020 at 12:29 PM
Edited

The following architectural descision has been made: Implement a soft delete in instances, holdings and items in inventory-storage.
Approach: add a column to store the deleted date. Introduce a view to filter records that have the deleted date populated.

https://folio-org.atlassian.net/wiki/display/FOLIJET/OAI-PMH+architecture+decision+log

HkaplanianOctober 2, 2018 at 5:12 PM
Edited

Recommend that we simply accept the leader in the MARC record "as is".
It will identify what is marked for deletion and what is not. I assume we will need to determine how that position in the leader will be indexed to make sure we can query for deleted records and exclude deleted records from a query as needed.

Done

Details

Assignee

Reporter

Priority

Story Points

Sprint

Development Team

Gulfstream

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created October 2, 2018 at 5:09 PM
Updated April 6, 2020 at 7:40 AM
Resolved April 6, 2020 at 7:40 AM
TestRail: Cases
TestRail: Runs