Data Anonymization
Warning
This feature is currently in beta and may be subject to change. Before using it in production, please contact your Socotra representative.
Data anonymization is the process of permanently removing personally identifiable information (PII) from a software system to protect an individual’s identity. This process is often necessary to comply with regulations such as the General Data Protection Regulation (GDPR) and the California Delete Act. Currently, only extension data
fields can be anonymized.
Data anonymization permanently removes PII from a software system, unlike data masking, which hides PII from users without permanently removing the data.
Rules
Socotra enforces a set of rules when processing data anonymization requests to maintain operational integrity. Data anonymization requests may be partially processed. This means that any entities that can’t be anonymized as a result of a rule violation will not be anonymized, while all other entities in the request will be successfully anonymized.
Anonymization rules are evaluated using an entity hierarchy. Accounts are top-level parent entities. Accounts can have one or more child entities, such as policies, and child entities can have their own child entities, forming a tree structure.
When an anonymization request is processed, the system will attempt to anonymize data in the specified entities in addition to all of their child entities and their descendants.
Accounts can only be anonymized if all of their child entities and descendants have already been successfully anonymized. Accounts can’t be anonymized if they have at least one policy in the onRisk
state.
Policies in the onRisk
state can’t be anonymized. Only policies in the expired
or cancelled
state can be anonymized.
Quotes in the issued state can’t be anonymized if the resulting policy is still in the onRisk
state. Quotes in the accepted
state can be anonymized by default. The includeAcceptedQuotes
flag can be set to false
in the anonymization request to prevent the anonymization of quotes in the accepted
state. Quotes can bypass all anonymization rules if the quotes are specified explicitly in the anonymization request.
If a parent entity can’t be anonymized, then its child entities and their descendants also can’t be anonymized.
Configuring Data Anonymization
Data anonymization can be configured through the RestrictedDataRef object for each extension data
field in the tenant configuration.
Set the anonymizable flag to true
to enable data anonymization for the specified extension data
field.
For example:
{
"data": {
"ssn": {
"type": "string?",
"restrictedData": {
"anonymizable": true
}
}
}
}
Formatting Anonymized Values
By default, the appearance of anonymized values depends on the field type:
string -> *****
guid -> *****
int -> -2147483648,
long -> -9223372036854775808,
date -> -999999999-01-01T00:00:00
datetime -> -999999999-01-01T00:00:00+18:00
Anonymized values of the same type will always be displayed the same way, regardless of how long the value is. For instance, two different anonymized integers, 1
and 1000
, will both be displayed as -2147483648
by default.
The value
field in the RestrictedDataRef object can be used to override the default appearance of anonymized values. This configuration overrides the appearance of both anonymized values and masked values.
For example:
{
"data": {
"ssn": {
"type": "string?",
"restrictedData": {
"anonymizable": true,
"value": {
"string": "***-**-****"
}
}
}
}
}
Submitting an Anonymization Request
Submit an anonymization request using the Anonymize Data API endpoint to anonymize entity data based on the anonymization rules and the currently deployed configuration for the tenant associated with the target entities. Only admins can submit an anonymization request.
Make sure to deploy any necessary configuration changes before submitting an anonymization request.
Warning
Data anonymization is an irreversible process. Please exercise caution before anonymizing data.
The referenceLocator
field uniquely identifies the target entity, and the referenceType
field specifies the entity type, such as policy
or quote
. The includeAcceptedQuotes
flag can be set to false
to prevent the anonymization of quotes in the accepted
state.
requiredreferences AnonymizationReference[]optionalincludeAcceptedQuotes boolean?policyStatuses Enum[]? cancelled | cancelPending | delinquent | doNotRenew | expired | inGap | onRisk | pending
requiredreferenceLocator stringreferenceType Enum none | account | quickQuote | quote | policy | contact | fnol | payment | disbursement
For example:
{
"includeAcceptedQuotes": false,
"references": [
{
"referenceLocator": "1E9MFx5h9DGw1H",
"referenceType": "policy"
}
]
}
Preview the effects of your anonymization request using the Preview Anonymization API endpoint.
Note
There may be a delay before the Anonymization API recognizes newly created entities.