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.

RestrictedDataRef
required
anonymizable boolean
maskingLevel Enum level1 | level2 | none
value Values

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.

AnonymizationRequest
required

optional
includeAcceptedQuotes boolean?
policyStatuses Enum[]? cancelled | cancelPending | delinquent | doNotRenew | expired | inGap | onRisk | pending
AnonymizationReference
required
referenceLocator string
referenceType 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.

Next Steps

See Also