Storage MS GDPR Solution
Storage MS stores data that belongs to Prospect, Verified Prospect and Customer.
The following entities stores PII Data:
- EntityItemResolveImpl
- SearchExtractDataResolveImpl
Business Implementation :
Commands for erasure & Reporting contains customer Id and Party Id along with the business Entity and its fields. In order to resolve the entities for a given customer Id or Party Id, the below business implementation is done in MS for each entity.
Interface : com.temenos.microservice.framework.dataprotection.Iresolve
Class : com.temenos.microservice.<ms.name>.function.dataprotection. <entityType>ResolveImpl.java
Method : public Object [] resolveEntity(String entityType, String customerId, String partyId, Map<String, String> customEntityIdentifier) throws FunctionException
Prospect:
Report: Report is taken care in spotlight application.
Erasure : Storage is the source of Trigger for Prospect Data. It purges applications and it emits events to delete data in Document MS and DBXDB based on purge data of the application. It picks those applications where purge date is less than the current date. Scheduler component in storage MS is responsible for emitting these events.
Flow:
Events :
Document.deleteEvidencesOfApplication
This event is emitted from ODMS to Document MS to delete all the evidences belonging to the application. API with operationID deleteEvidencesOfApplication is invoked and data is deleted.
Document.deleteDocument
This event is emitted from Storage MS to Document MS to delete all the standalone documents belonging to the application. API with operationID deleteDocument is invoked and data is deleted.
APPLICATION_PURGED: This event is emitted from Storage MS to DBXDB to delete all the data stored in DBX.
Verified Prospect / Customer : Transact is the source of trigger. It emits events to Storage MS for report / to delete customer data.
Report/Erasure:
Types of Requests:
executeSubjectAcessRequest: Generates reports from customer data managed in the respective components
executeCDPErasureRequest: Erases the customer data managed in the respective components
Sample Payloads:
Storage to Document
{
"eventId":"fd035db6-f299-4eb7-a935-20ee3e7ef41e",
"dateTime":"2022-06-29T10:02:09.837+0000",
"correlationId":"20800f6b-afda-4851-bec5-887b5604150b",
"userId":"T24",
"status":"new",
"eventSourceId":"Storage",
"headers":{
"authorization":"eyJraWQiOiJLQTAxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhdWQiOiJJUklTIiwic3ViIjoiVDI0Iiwicm9sZUlkIjoiSU5GSU5JVFkuT05CT0FSRElORyIsImlzcyI6IkZhYnJpYyIsImRieFVzZXJJZCI6IjAwMDEiLCJleHAiOjMxNjQ4NDY5NjMsImlhdCI6MTU4ODA0Njk2MywidXNlcklkIjoiVDI0IiwiX2lzc21ldGEiOiJodHRwczpcL1wvZGJ4bGVuZGluZ3FhLmtvbnljbG91ZC5jb21cL3NlcnZpY2VzXC9UMjRJU0V4dHJhXC9nZXRwdWJsaWNrZXkiLCJqdGkiOiI3OTZkNjUyNy1mNmEwLTQ4YmItYmI0NS1hZmQyMzdhZTUwZmYifQ.g-5pPTK1sSZUbbvZ-ScgN6kEOv8uSpvGcYjH1miF_mHV3vr3kDVXCspz3sbFHgCHK-UmU8v6xGIXSOntL4Go5oO5LyYsLS7ZwcU-JCOIK_8CF4DTLEYaIPDrA2U21tJkfxQ37QRzeAF_7tqnWOe-LzTbtLPTDZmHcVTTZzx3ZCqUa55OyaDJT2KGkU578p7O1fq333Dvjlbn2tBFGYUOPnCHzLU4Z5PTlNLqtbxaA-G8IAdidaUfTHD2MzFFLnhnTGmqkr7JlQfukYL98KjUtHU-hOQx6XQCo-kQWWVOVQlZUp6W8oWCR56iFYjRCVDNv0J852VpKy2YCkRHVoAD8g"
},
"subject":"command",
"eventType":"document.deleteEvidencesOfApplication",
"payload":{
"eventId":"e112d9d8-1e68-4457-bc8d-5aac2c822717",
"userId":"T24",
"status":"new",
"eventSourceId":"Storage",
"headers":{
"authorization":"eyJraWQiOiJLQTAxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhdWQiOiJJUklTIiwic3ViIjoiVDI0Iiwicm9sZUlkIjoiSU5GSU5JVFkuT05CT0FSRElORyIsImlzcyI6IkZhYnJpYyIsImRieFVzZXJJZCI6IjAwMDEiLCJleHAiOjMxNjQ4NDY5NjMsImlhdCI6MTU4ODA0Njk2MywidXNlcklkIjoiVDI0IiwiX2lzc21ldGEiOiJodHRwczpcL1wvZGJ4bGVuZGluZ3FhLmtvbnljbG91ZC5jb21cL3NlcnZpY2VzXC9UMjRJU0V4dHJhXC9nZXRwdWJsaWNrZXkiLCJqdGkiOiI3OTZkNjUyNy1mNmEwLTQ4YmItYmI0NS1hZmQyMzdhZTUwZmYifQ.g-5pPTK1sSZUbbvZ-ScgN6kEOv8uSpvGcYjH1miF_mHV3vr3kDVXCspz3sbFHgCHK-UmU8v6xGIXSOntL4Go5oO5LyYsLS7ZwcU-JCOIK_8CF4DTLEYaIPDrA2U21tJkfxQ37QRzeAF_7tqnWOe-LzTbtLPTDZmHcVTTZzx3ZCqUa55OyaDJT2KGkU578p7O1fq333Dvjlbn2tBFGYUOPnCHzLU4Z5PTlNLqtbxaA-G8IAdidaUfTHD2MzFFLnhnTGmqkr7JlQfukYL98KjUtHU-hOQx6XQCo-kQWWVOVQlZUp6W8oWCR56iFYjRCVDNv0J852VpKy2YCkRHVoAD8g"
},
"eventType":"document.deleteEvidencesOfApplication",
"payload":{
"applicationId":"CDMLCY5"
}
}
}
Storage to Document
{
"eventId": "0e77d697-fbdb-48c2-b089-c1c7d1785b57",
"dateTime": "2022-07-20T12:45:25.793+0000",
"correlationId": "f7d73022-0b60-4108-ac90-e9e7de801cc3",
"userId": "98764321",
"status": "new",
"eventSourceId": "document",
"commandType": "document.deleteDocument",
"headers": {
"Authorization": "eyJraWQiOiJLQTAxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhdWQiOiJkb2N1bWVudHMiLCJzdWIiOiI5ODc2NDMyMSIsInJvbGVJZCI6IkRvY3VtZW50T3duZXIiLCJpc3MiOiJGYWJyaWMiLCJleHAiOjE2NTgzMjI5MjMsImlhdCI6MTY1ODMyMTEyMywianRpIjoiMzQ0YzhkZjktNzRhZS00N2Y3LTkyNzUtYzIxMWQwNmIwOTg5In0.UF0YYFl_4pWgzS1tHbe3Ys6aLrKb1VsyqXoATcv-BJ-hfGWHVs0-BOjG6vXcNIuFp5w2KcGIaYUfY9LunwP7C2LNQhvTgKpClg5bkEp_8d2dj9li_GWXUxMm-FgIb1K7-Qz8jUMbdPy2NECFrIiGLx9SM1AUCFCouqmU-zG6O1OMgODDIZxQBzAMIEIzLUr9l-CObC57nj-Prwy77wPydCCDQpDwWf6BO_ulObvEsNvkSvwOkxVFCANBfxzaBrDLsoOwqIsOuebjVlWx58d-v5fu60CouiPVpF8xPZ9gkUqZ5zcIIOGpXIuAtcXVGuP7CZVUOxBIW-AWv88TrD-flg"
},
"subject": "commandprocessed",
"eventType": "CommandProcessed",
"payload": {
"commandId": "f7d73022-0b60-4108-ac90-e9e7de801cc3",
"eventType": "document.deleteDocument",
"status": "NEW",
"businessObject": {
"status": 200,
"failureMessages": [],
"body": {
"documentId": "78a63e06-d6e6-45d8-96c6-85a22d09ab95",
"ownerSystemId": "corporate-los",
"channelId": "infinity"
},
"success": true
},
"userId": "98764321",
"commandSourceId": "Storage"
}
}
Transact to Storage
{
"specversion": "1.0",
"id": "f1821b4f-9dc9-4456-ab9c-0413b9522c3e",
"source": "https://temenos.com/microservice/cloudevents/ms-service-orchestrator",
"type": "ms-storage.ExecuteSubjectAccessRequest",
"datacontenttype": "application/json",
"subject": "command",
"time": "2022-09-21T10:31:22.562Z",
"extension-mscontext": "{\"sequenceinstanceid\":\"b7ab319a-9dc3-415e-bf87-59384a3a858c\",\"operationinstanceid\":\"2b947407-5db7-4ac2-ae3f-13b4d1b770b4\"}",
"correlationid": "f1821b4f-9dc9-4456-ab9c-0413b9522c3e",
"data": {
"params": {
"reportType": [
"SAR"
],
"requestId": [
"CDP22109JQT170V3"
]
},
"body": {
"personalData": [
{
"dataEntityName": "EntityItem",
"dataEntityFields": [
{
"dataEntityFieldDataType": "string",
"dataEntityFieldName": "entry"
},
{
"dataEntityFieldDataType": "string",
"dataEntityFieldName": "entryHash"
}
]
},
{
"dataEntityName": "SearchExtractData",
"dataEntityFields": [
{
"dataEntityFieldDataType": "string",
"dataEntityFieldName": "value"
}
]
},
{
"dataEntityName": "ms_search_extract_data",
"dataEntityFields": [
{
"dataEntityFieldDataType": "string",
"dataEntityFieldName": "value"
}
]
}
],
"customerId": "GB0010001-192548",
"partyId": "1489740835",
"serviceId": "ODMS"
}
}
}
In this topic