Class PermissionCheckingSynchronyDataService
- All Implemented Interfaces:
SynchronyDataService
SynchronyDataService, which allows only Confluence administrator to launch the operation.- Since:
- 7.0.0
-
Constructor Summary
ConstructorsConstructorDescriptionPermissionCheckingSynchronyDataService(SynchronyDataService delegate, PermissionManager permissionManager, PageManager pageManager) -
Method Summary
Modifier and TypeMethodDescriptioncurrentSynchronyDatasetSize(Long contentId) If the parameter is not null, returns size of Synchrony history for that entity.voidThis method cleans up Synchrony data after turning Collaboration Editing off.voidhardRemoveHistoryOlderThan(int thresholdHours) Remove all events from content entities, which have any data older than .voidremoveApplicationCredentials(String applicationId) Remove application credentials from Synchrony tablesvoidremoveHistoryFor(ContentId contentId) This method removes Synchrony history for given content.voidsoftRemoveHistoryOlderThan(int thresholdHours, int contentCount) Remove approximately content records from Synchrony history, which are older than and are safe for removal.
-
Constructor Details
-
PermissionCheckingSynchronyDataService
public PermissionCheckingSynchronyDataService(SynchronyDataService delegate, PermissionManager permissionManager, PageManager pageManager)
-
-
Method Details
-
currentSynchronyDatasetSize
If the parameter is not null, returns size of Synchrony history for that entity. If the parameter is null, returns overall Synchrony rows count for the whole instance. This implementation adds permission check on top of actual functionality. Only Confluence administrator can perform the operation.- Specified by:
currentSynchronyDatasetSizein interfaceSynchronyDataService- Throws:
NotAuthorizedException- if the user performing operation is not Confluence administrator
-
softRemoveHistoryOlderThan
public void softRemoveHistoryOlderThan(int thresholdHours, int contentCount) Remove approximately content records from Synchrony history, which are older than and are safe for removal. Execution of this method should avoid any bad effect on users experience because we touch here only content which haven't been updated for hours. This method provides only 'best effort' guarantee for data removal. Deletion strategy depends on the implementation details of how exactly do we determine that content hasn't been touched in and might change. In some edge cases the method will not remove any data. If you're looking for a guaranteed way to clean synchrony history, please look atSynchronyDataService.hardRemoveHistoryOlderThan(int).The main purpose of this method is disk space cleanup in collab editing tables. Parameter allows to shift trade-off between removal efficiency (disk reclaiming) and the degree of intrusiveness.
The method is executed synchronously in the same thread. If exception is thrown somewhere in the middle, it is possible to have only a part of data removed, because the removal might happen in several transactions, but remaining data will always stay consistent (e.g. synchrony data consistent with content properties). This implementation adds permission check on top of actual functionality. Only Confluence administrator can perform the operation.
- Specified by:
softRemoveHistoryOlderThanin interfaceSynchronyDataService- Throws:
NotAuthorizedException- if the user performing operation is not Confluence administrator
-
hardRemoveHistoryOlderThan
public void hardRemoveHistoryOlderThan(int thresholdHours) Remove all events from content entities, which have any data older than . Theoretically this might cause last 30 seconds of history disappear. This method is designed to be called rarely and be the last resort for GDPR compliance.The method guarantees to remove old personal data in order to be compliant with regulations. If the customer doesn't care about any regulations, it shouldn't generally call the method, instead less intrusive
SynchronyDataService.softRemoveHistoryOlderThan(int, int)should be used.The method is executed synchronously in the same thread. If exception is thrown somewhere in the middle, it is possible to have only a part of data removed, because the removal might happen in several transactions, but remaining data will always stay consistent (e.g. synchrony data consistent with content properties). This implementation adds permission check on top of actual functionality. Only Confluence administrator can perform the operation.
- Specified by:
hardRemoveHistoryOlderThanin interfaceSynchronyDataService- Throws:
NotAuthorizedException- if the user performing operation is not Confluence administrator
-
removeHistoryFor
Description copied from interface:SynchronyDataServiceThis method removes Synchrony history for given content. It can be used to completely remove Synchrony history and reset sync rev properties for given content. If content is not of a type ofPageorBlogPost,IllegalArgumentExceptionis thrown. IMPORTANT: please keep in mind, that this method deletes Synchrony history for provided page or blog. If Synchrony history is needed f.e. to conduct analysis of the problem, caller should fetch and save it BEFORE invocation of this method.- Specified by:
removeHistoryForin interfaceSynchronyDataService- Parameters:
contentId- id of the content, which history has to be cleaned up. Should not be null.
-
removeApplicationCredentials
Description copied from interface:SynchronyDataServiceRemove application credentials from Synchrony tables- Specified by:
removeApplicationCredentialsin interfaceSynchronyDataService- Parameters:
applicationId- id of application to remove
-
dataCleanUpAfterTurningOffCollabEditing
Description copied from interface:SynchronyDataServiceThis method cleans up Synchrony data after turning Collaboration Editing off.- Specified by:
dataCleanUpAfterTurningOffCollabEditingin interfaceSynchronyDataService- Parameters:
appId- id of application to remove
-