Overview
The user deletion requirement in inQuiry has been originated from the below requirement.
PRD: [PRD] Delete Account functionality
BE Design Lern - [Design] Delete Account Functionality
FE Design Lern - /wiki/spaces/SUN/pages/3359146039
What is changing?
The user can request for deletion of their account in Sunbird, this means two primary actions to happen.
User's Personal Identifiable Information (PII) needs to be removed
The assets (like questions, questionSets, content etc) that was created by this user needs to be transferred to an identified user.
Scope for inQuiry
Inquiry in its question bank stores the users name and id as part of question and questionSet meta data.
Apart from the User Name, there is no other identifiable information of the user that is stored in the inQuiry data stores.
The user name is stored in the data stores as below,
Neo4J
Elastic Search
Changes in inQuiry
The below two events will be flowing into inquiry as messages which originated from the Lern system.
The events are user specific and not in bulk form.
No API changes required inQuiry
New Kafka message consumers to be created to consume these 2 events.
In case of User Deletion,
The user name needs to be cleared out with a static default name (Deleted User). Refer
The User Name is stored in the below attributes,
creator
author
publisher
owner
The User Id (UUID) is stored in the below fields, this will be left as is.
createdBy
lastPublishedBy
lastUpdatedBy
lastSubmittedBy
createdFor is an attribute that stores the organisation name. It is confirmed that the users in the scope of inQuiry, i.e; creator or reviewer, will always have an organisation.
Impacts if any
No impacts detected,
As the searches are based on UUID and that is retained
In the consumption flow only the author name is displayed
Discussion items
Retired questions and questionsSets can be left un-modified?
Bundles (ecar) also has these attributes. Needs update / republish (TBD with Kartheek)
Should we update the Author Name? As there is no UUID for author.
If needs to be updated, we need user name (first name, last name) in the message from Lern for us to cross check if it is the same user name.
Creator can be different from author and sometimes the author name is added automatically as creator name
Technical Design
<<TODO - Gauraw Kumar >>
Details of Flink jobs
Details of searching and updating Neo4J
Details of searching and updating ES
Add Comment