[FOLIO-2052] Add support for bulk deleting objects Created: 30/May/19  Updated: 24/Aug/22

Status: Open
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None

Type: New Feature Priority: TBD
Reporter: Jon Miller Assignee: Ian Walls
Resolution: Unresolved Votes: 0
Labels: platform-backlog, users
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Issue links:
Blocks
is blocked by MODUSERS-122 DELETE /users with CQL Closed
Relates
relates to UXPROD-1719 Bulk add/delete/clean holding records Closed
relates to DEBT-3 Slow or missing batch upload/download... In Review
relates to FOLIO-1156 Add a method to add/update/delete lis... Open
relates to FOLIO-2050 SPIKE Design batch create / update AP... Closed
relates to MODINVSTOR-576 Bulk delete of instance/holdings/item... Closed
Sprint:
Development Team: Core: Platform

 Description   

Please add support for bulk deleting objects for all entities that can contain large numbers of objects similar to what is present for deleting instances in the Inventory module described at https://s3.amazonaws.com/foliodocs/api/mod-inventory-storage/p/instance-storage.html#instance_storage_instances_delete.

This would be useful for data migration testing of modules such as the users module that can have a large number of objects which would be otherwise very slow to delete one by one. In the case of users and possibly other entities, you would need to have support for providing a filter to allow a user to specify which objects to delete. For example, you would need to be able to tell it to not delete the user that you are currently logged in as. Otherwise, you would lock yourself out of the system.



 Comments   
Comment by Ian Walls [ 24/Feb/20 ]

Universal bulk deletion (deleting all records of a type) would be very useful for data migration, where multiple reloads are likely necessary, and using PUT to overwrite them one at a time would be cost prohibitive for time.

Filtered deletion is a separate thing that would require a lot more thought. Do you provide a JSON array of record IDs to delete? A search criteria? If the latter, do you get a confirmation of the number of records that match said search before they're wiped out?

The currently logged in user would need to be filtered out by the business logic. That is, you CANNOT delete yourself, even if you specifically include your userId for deletion. Another user account would need to be used to delete your account.

All of this would need to be strongly permissions controlled, as a breach could result in catastrophic data loss and lengthy system downtime while data is restored from back up (because you backed up everything recently, right?)

Comment by Julian Ladisch [ 24/Aug/22 ]

For Ian Walls' recommended priority order see https://folio-org.atlassian.net/browse/DEBT-3#comment-93421

Generated at Thu Feb 08 23:17:51 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.