Extensible skeleton Apex-driven project, which can be used for data management-related tasks within your Salesforce org, such as GDPR Compliance or data storage optimization.
An end user should configure Anonymization Configuration custom metadata record for each Sobject, which has to be processed, providing:
- The number of days a record is untouched(comparing to last modified date), which determines that the record has to be anonymized;
- And/or the number of days a record is untouched, which determines that the record has to be deleted;
- Sobject API name;
- Field set API name on the Sobject, which describes fields to be processed;
- Apex class API name, which is responsible for data processing(by default it's BaseAnonymizator).
Afterward, the end user should schedule the processing by calling
AnonymizationBatch.start();
, what, in its turn, will schedule a batch job execution for each Sobject configured in the custom metadata(by default the job scheduled to be launched once per month).
In case your project requires more fine-grained control over data anonymization - field sets more or less easily can be replaced with a custom metadata definition, where you define which particular field and with which specific value is anonymized. This way creating a master-detail relationship between Anonymization Configuration custom metadata type and the one introduced above.