Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 5 Next »

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.

  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.

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 User's Personal Identifiable Information (PII) that is stored in the inQuiry data stores.

The user name is stored in the data stores as below

  • Neo4J

  • Cassandra (In case of hierarchy)

  • Elastic Search

  • Cloud (ECAR Bundle)

Changes in inQuiry

The events are user specific and not in bulk form.

  • No API changes required

  • A flink job has 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 could be 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

Technical Design

  • A flink job will will be written to consume both message (user deletion and ownership transfer)

  • This flink job will only deal with two object type Question & QuestionSets.

  • Assets (appIcon, images/audio/video used as options/solutions) used under Question/QuestionSets will not be processed by this flink job.

    • Those assets should be processed by Knowlg Flink job as inQuiry uses only artifactUrl metadata of those assets. So no dependency from inQuiry functionality.

User deletion:

  • A Search will be triggered with user-id received in the message to collect the Question/QuestionSet identifiers.

    • search will be in the neo4j database.

  • On collected Identifiers, the flink job will start updating metadata (listed above) which will have User Name to “Deleted User“

    • For Question/QuestionSets With Live Status, A re-publish event will be triggered post primary database updates with no pkgVersion upgrade.

    • For any other status, only primary databases (graph + cassandra) will get updated

    • ES will get updated automatically when we update it in neo4j.

Ownership Transfer:

  • A Search will be triggered with from-user-id received in the message to collect the Question/QuestionSet identifiers.

    • search will be in the neo4j database.

  • On collected Identifiers, the flink job will start updating metadata (listed above) which will have from-user-id with to-user-id

    • For Question/QuestionSets With Live Status, A re-publish event will be triggered post primary database updates with no pkgVersion upgrade.

    • For any other status, only primary databases (graph + cassandra) will get updated

    • ES will get updated automatically when we update it in neo4j.

Discussion items

  • Retired questions and questionsSets can be left un-modified?

  • Bundles (ecar) also has these attributes. Needs update / republish

  • Old Version Bundles may also have these attributes. What should happen to them?

  • 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

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.