User PII Cleanup

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 - [Design] [Front-end]Delete User Functionality

What is changing?

The user can request for deletion of their account in Sunbird, this means two primary actions to happen.

  1. User's Personal Identifiable Information (PII) needs to be removed

  2. The assets (like questions, questionSets, content etc) that was created by this user needs to be transferred to an identified user.

Changes for Learn:

  1. Learn BB provided user delete api which produces a kafka event on <env>.delete.user topic.

  2. For more details on the delete user api, please visit

Changes for inQuiry:

  1. PII data cleanup feature released under inQuiry 7.0.0 release.

  2. inQuiry provided a flink job user-pii-data-updater for user PII data cleanup activity.

  3. The flink job listen to <env>.delete.user kafka topic and process the data accordingly.

  4. The job works for all object type (including Question, QuestionSet, Content, Collection, Assets) which are configured to the job.

  5. The flink job will search for all the objects (configured with flink job) owned by deleted user and update the pii field configured under object schema(e.g: creator) to the pre-configured value (e.g: Deleted User / Anonymous user) with the flink job.

  6. PII field configuration is part of each object schema (config.json) because there could be different pii field for each object.

  7. Sample PII Config is as below:

    Ref: https://github.com/Sunbird-inQuiry/inquiry-api-service/blob/a0352eb2dfa6ccc4433dc15c44610db286deb12e/schemas/question/1.0/config.json#L58

    "PII_Fields": { "user": { "createdBy": ["creator"] }, "org": { } }

  8. The job triggers a notification email to the org admin with all identifiers affected for Deleted user.

Release Tags:

Variables Added to user-pii-data-updater flink job for PII Cleanup Use case:

Last updated