Identifying archived objects that affect destruction of data
Destroying personal data can require navigating the entity domain graphs and possibly purging objects other than the root objects. Therefore, it is possible that a purge can be affected by archived objects.
For example, purging a contact’s data affects several policy periods, one of which is archived.
If there are references from any archived documents to any object instances in the entity graph, the objects cannot be destroyed until the archived objects are restored from the archive. Therefore PolicyCenter requires that a table of archived objects be built and maintained to use in determining if references from archived objects exist.
If you already have archived policy periods in an existing installation of
PolicyCenter, you must run the ArchiveReferenceTrackingSync batch
process once to build the initial table of archived objects.
The batch process adds entries to a reference table for every archived object that does not yet have an entry.
In the base configuration, PolicyCenter calls
DataDestructionParameterCheck.verifyPersonalDataDestructionEnabled
to determine if the ArchiveReferenceTrackingSync batch process has run.
This method is called from:
- PersonalDataContactDestructionWorkQueue
- The class that implements the
DestroyContactForPersonalDatawork queue. - PersonalDataDestructionNotifyExternalSystemsWorkQueue
- The class that implements the
NotifyExternalSystemForPersonalDatawork queue.
As you archive policy periods, PolicyCenter adds the
PolicyPeriod objects to the reference table of archived objects.
PolicyCenter checks this table whenever a personal data destruction request is
initiated.
The utility class gw.api.archiving.ArchiveDocumentReferencesUtil provides methods for determining:
- If an object or set of objects is referred to by an archived document.
- Which archived documents refer to a given object or set of objects.
