DEMO: add RegistrationDemographicsCaptured public signal#574
Draft
bmtcril wants to merge 2 commits into
Draft
Conversation
Adds a new public signal, ``REGISTRATION_DEMOGRAPHICS_CAPTURED``, fired by LMS once a learner has successfully registered and any optional demographic fields collected by an authn-form plugin have been validated. Why a new event rather than extending ``STUDENT_REGISTRATION_COMPLETED``? * ``STUDENT_REGISTRATION_COMPLETED`` carries only ``UserData`` today. Adding optional demographic fields to it would force every existing receiver to deal with the new attrs, and would couple a generic registration event to one specific use case (demographics collection). * A dedicated event lets deployments that don't collect demographics ignore it entirely, and lets deployments that do route it onto the event bus (Kafka/Redis) without touching the higher-volume registration-completed stream. * Versioning the signal independently (``...captured.v1``) means future changes to demographic field shape don't require bumping ``STUDENT_REGISTRATION_COMPLETED``. The payload is intentionally minimal: a ``UserData`` reference plus the two free-form string fields the plugin slot collects (``pronouns``, ``department``). Fields default to empty strings so receivers don't have to special-case "demographics not collected on this deployment". Reference: see the OEX 2026 workshop "Leveraging Open edX Extension Points" running example — this event is the one its registration demographics plugin subscribes to.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For demonstration purposes only, do not merge.
Adds a new public signal,
REGISTRATION_DEMOGRAPHICS_CAPTURED, fired by LMS once a learner has successfully registered and any optional demographic fields collected by an authn-form plugin have been validated.Why a new event rather than extending
STUDENT_REGISTRATION_COMPLETED?STUDENT_REGISTRATION_COMPLETEDcarries onlyUserDatatoday. Adding optional demographic fields to it would force every existing receiver to deal with the new attrs, and would couple a generic registration event to one specific use case (demographics collection)....captured.v1) means future changes to demographic field shape don't require bumpingSTUDENT_REGISTRATION_COMPLETED.The payload is intentionally minimal: a
UserDatareference plus the two free-form string fields the plugin slot collects (pronouns,department). Fields default to empty strings so receivers don't have to special-case "demographics not collected on this deployment". This is a known flawed design (hard coding those fields is an anti-pattern, we cover this in the workshop).Reference: see the OEX 2026 Conference workshop "Make It Extensible: Adding Extension Points Where You Need Them". This event is the one its registration demographics plugin subscribes to.