openedx / openedx/openedx-platform

[DEPR]: Software Secure IDV Integration

Open
#35,128 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

depr
Dominant language
Python
Stars
8.2k
Forks
4.4k
Avg merge
6d 18h
Merged PRs (30d)
42

Description

Proposal Date

2024-07-17

Target Ticket Acceptance Date

2024-07-31

Earliest Open edX Named Release Without This Functionality

Sumac - 2024-10

Rationale

The verify_student Django app in the edx-platform implements various forms of identity verification (IDV) that are used across the platform. One implementation of IDV is an integration with Software Secure, an IDV vendor. To our knowledge, edx.org is the primary user of this integration. Until recently, we were aware of only two Open edX users of this integration - EDUlib and Open Craft - and we have since learned that they no longer use it. 2U is replacing Software Secure as its photo IDV vendor. For this reason, the Software Secure integration will be unused and has no purpose in the core. It is dead code and contributes to the unnecessary complexity of this application.

Removal

The implementation of the Software Secure integration has its tentacles in a few areas of the platform. This may not be an exhaustive list, but it should be comprehensive.

Replacement

We do not propose replacing the Software Secure IDV integration because it is not appropriate to add integrations with specific IDV vendors into the core.

2U is in the process of proposing adding extensibility mechanisms to the verify_student application to enable the seamless integration of additional IDV vendors into Open edX installations without polluting the core. This is not a replacement per se, but it will provide the capability for Open edX operators to integrate with IDV vendors of their choosing. Please see https://github.com/openedx/platform-roadmap/issues/367 for more details.

Deprecation

We do not believe marking code for deprecation is necessary given the low usage of Software Secure IDV.

Migration

This is TBD, pending the outcome of https://github.com/openedx/platform-roadmap/issues/367. Assuming that that proposal is approved, migration will be necessary to do the following.

In order to update the VerifiedName model, the following may be a reasonable approach for migration.

  • We will add a new column verification_attempt to the VerifiedName model, which will be a ForeignKeyField to VerificationAttempt. In the beginning, a given VerifiedName will have a value for either verification_attempt_id (via SoftwareSecurePhotoVerification) or verification_attempt (via VerificationAttempt).
  • As part of the process of copying all records in the SoftwareSecurePhotoVerification model to the new VerificationAttempt model, we will also set the verification_attempt field to the proper reference associated with the new VerificationAttempt instance. If a VerifiedName has values for both fields, verification_attempt will take priority.
  • References to the VerifiedName.verification_attempt_id column will be removed.
  • The SoftwareSecurePhotoVerification model will be dropped. The VerifiedName.verification_attempt_id column will be dropped.
Additional Info
Task List

TBD

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in lms/djangoapps/verify_student and review models.py, services.py, admin.py, signals.py, tasks.py, management commands, views.py, JavaScript, and templates listed in the proposal. Trace each Software Secure reference and the related VerifiedName migration discussion before defining the complete scope. Done means the obsolete integration is removed consistently, with migration requirements resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, python
Domain
backend, security
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.