Graham,
>> If the user has soft-deleted an entity or relationship, they should be able >> to follow it up with a purge (hard delete) even though the repository is >> configured for soft-delete I agree. Having an API to purge soft-deleted entities/relationships will be useful; criteria could be: 1) list-of-guids 2) time-since-delete. Authorization model should be updated to require users to have explicit permission to purge. >> If the user has soft-deleted an entity or relationship, they should be able >> to undo that delete Can you give few usecases for this ask? Need to look into the details to include in the notifications sent out by Atlas; today Atlas sends ENTITY_CREATE/ENTITY_UPDATE/ENTITY_DELETE notifications. >> Prior to issuing a delete of an instance - the caller should be able to >> inquire as to whether delete will be hard or soft using an API This is currently available at the server-side as configuration. Do you think this info should be made available via REST? >> The caller should be able to determine from the result/response returned by >> the delete method whether a delete was hard or soft Perhaps EntityMutations.EntityOperation can be updated with addition of HARD_DELETE and SOFT_DELETE. Need to make sure to existing use of DELETE continues, for backward compatibility with earlier clients. Can you please file JIRA(s) to track these updates? Thanks, Madhan From: Graham Wallis <[email protected]> Date: Monday, July 2, 2018 at 12:50 AM To: Madhan Neethiraj <[email protected]> Cc: "[email protected]" <[email protected]> Subject: Re: Deleting entities and relationships Hi ATLAS-2770 reminded me that this question is still pending. Would appreciate responses/reactions as I'm trying to maximise the level of function that can be supported by the Atlas OMRS connector - and at the moment deletes are not looking great. What I would like to implement is as follows. At the moment the clear delineation in Atlas between configuration for soft-delete or hard-delete makes some of the following impossible. Allow the user to always be able to issue a soft-delete (as opposed to only hard-deletes). This is a configuration choice - i.e. Atlas can support this provided it is configured for soft-delete. However that removes the option to purge/hard-delete which puts this in conflict with the following requirement. If the user has soft-deleted an entity or relationship, they should be able to follow it up with a purge (hard delete) even though the repository is configured for soft-delete. If the user has soft-deleted an entity or relationship, they should be able to undo that delete. Prior to issuing a delete of an instance - the caller should be able to inquire as to whether delete will be hard or soft using an API. The caller should be able to determine from the result/response returned by the delete method whether a delete was hard or soft. Best regards, Graham Graham Wallis IBM Analytics Internet: [email protected] IBM Laboratories, Hursley Park, Hursley, Hampshire SO21 2JN Tel: +44 7741 379735 From: Graham Wallis/UK/IBM To: "Madhan Neethiraj" <[email protected]> Cc: [email protected] Date: 18/06/2018 16:44 Subject: Deleting entities and relationships Hi Madhan Could you please look at the following and tell me whether the following look like sensible requirements for Atlas? To support the OMRS interface, I would like to be able to: soft delete an entity/relationship - this can fail if Atlas is configured only for hard-deletes. hard delete (purge) an entity/relationship - this is needed even when Atlas is configured for soft deletes. restore (un-delete) an entity/relationship that was soft-deleted be able to purge (hard delete) an entity/relationship that was already soft-deleted. inquire whether a delete will be soft or hard (before issuing the delete) - I guess being able to safely inspect the configuration would b an option here, but an API might be better. find out whether an entity/relationship was soft- or hard-deleted after the delete operation. For this I could just try to retrieve the entity/relationship but it would be neater to known from the return value. I don't think the EntityMutationResponse includes that detail. I know the requestContext is updated to include the deleted entities but that seems to be before the delegation to either the soft or hard delete handler, so I suspect it cannot indicate whether the delete was ultimately soft or hard). I'm not sure how I would get that information that for relationships. Best regards, Graham Graham Wallis IBM Analytics Internet: [email protected] IBM Laboratories, Hursley Park, Hursley, Hampshire SO21 2JN Tel: +44 7741 379735 Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
