Flagging SIPs as Deleted when all IEs are deleted/purged
One of our institutions keeps track of the ingested SIPs in an external application. Here, it is currently not easily possible to trace SIPs for which all IEs have been deleted.
When deleting all IEs of a SIP in Permanent, the SIP itself cannot be found in a search in Permanent - however, the SIP itself is not flagged as deleted in the SIP Report and its status remains as "Permanent/Finsished" when querying for SIP Status via the API. External applications therefore can't easily see that the SIP actually doesn't exist anymore.
For external integrations it would be helpful to mark the SIP somehow when all IEs are deleted, e.g. show status as "FINISHED-ALL-IEs-DELETED".

Included in 6.0
-
Hi Micky,
This is planned to be released in 6.1.
Thanks,
Daniel -
Michelle Lindlar commented
Hi Daniel,
everything is clear and the suggested fix is fine with ZBW.
Cheers,
ML -
Hi Micky,
Correct, the SIP ID is stored with the IE for provenance purposes, but the SIP object becomes redundant and isn't managed by Rosetta any more once the IEs are stored in permanent.
Daniel -
Michelle Lindlar commented
Hi Daniel and Nir,
I've passed the question to our partner institution ZBW to see if they have anything to add / further specification.
In the meantime, I have a question: the solution via numberOfIEs=0 sounds reasonable to me. I'm just wondering if there is a use case where a SIP would have no IEs but would not be deleted? If not, what is the reason for not updating the flag? The fact that the SIPID is a UID and should remain reserved / protocolled for historic / audit reasons? That would make sense to me.Cheers,
ML -
Hi ML,
Please let me know if you have any further questions on Nir's description of the solution.
Thank you!
Daniel -
Nir Kashi commented
Hi ML,
I suggest the following:
1. As Daniel suggested and you understood, add a 'numberOfIEs' element to the getSipStatusInfo WS. Module/Stage/Status will remain as is and the way for you to identify the case that all IEs have been deleted, is by numberOfIEs=0 (which is kind of a shortcut for something you can do today by calling 2 WSs - getSipStatusInfo and getSipIEs).
2. SIP Report doesn't require changes since it has a 'SIP Content' section containing the list of IEs/REPs/Files. Once all IEs were permanently deleted, this section is empty. -
Michelle Lindlar commented
Hi Daniel,
thanks for your response! Really happy to hear that you're looking into this.
I'm afraid I don't quite understand what the two options suggested by you mean. Could you elaborate?
In option 1: AFAIK getSipStatusInfo currently returns module and status - I'm not sure how the flag would work in here. Is this an additionally parameter to module&status, which will always be returned? Is it something that is only returned when the SIP is empty? Is it actually a different method within the SIPWebServices? And would this be something that is shown within BIRT Reporting (e.g. SIP Details) as well, or does it only work via the API?
In option 2: Is this something that could be returned via the webservice as well? If so, in what form?
Thanks,
ML -
Hi Michelle,
There are several approaches we could take, one of them being adding a flag to getSipStatusInfo which will define if number of IEs should be returned. The flag can be enabled whenever the external job wants to know if SIP is empty.
This disconnects the status itself from number of IEs.
Alternatively we could run a periodical job in Rosetta, checking for empty SIPs and setting a special status accordingly. Please let me know if you have any preference.
Thank you,
Daniel