Skip to content

feat: enable intergrated channel pipeline - sync_tpa_budget_group - #421

Open
jono-booth wants to merge 1 commit into
masterfrom
jb/tpa-org-group-login-sync-wiring
Open

feat: enable intergrated channel pipeline - sync_tpa_budget_group#421
jono-booth wants to merge 1 commit into
masterfrom
jb/tpa-org-group-login-sync-wiring

Conversation

@jono-booth

@jono-booth jono-booth commented Aug 11, 2026

Copy link
Copy Markdown

Description

Wires a new login-time step into the SSO pipeline: channel_integrations.integrated_channel.pipeline.sync_tpa_budget_group, appended to the additional_elements tuple in insert_enterprise_pipeline_elements (openedx/features/enterprise_support/api.py), right after enterprise.tpa_pipeline.handle_enterprise_logistration.

This is Stage 3 of a staged rollout for ENT-12084 (Learner Credit Subsidies: restrict Skillsoft learners to the budget matching the org they logged in under). The function itself lives in enterprise-integrated-channels (PR openedx/enterprise-integrated-channels#190) and, once wired in here, checks a waffle switch (enable_tpa_org_group_login_sync, default off) before doing anything - so merging and deploying this PR causes no behavior change for any customer on its own. Its only purpose is to prove the new pipeline entry resolves and imports cleanly on every SSO login. See that repo's docs/how-tos/onboard_skillsoft_org_budget.rst for the full mechanism.

Affected user role: none directly (Operator-only, behind a flag that stays off until a later, separate rollout stage).

Supporting information

Testing instructions

  1. Deploy to staging with the switch left off (default).
  2. Log in via any configured SSO/SAML identity provider.
  3. Confirm login succeeds and no import/attribute errors appear in LMS logs referencing sync_tpa_budget_group or enterprise_support.
  4. Confirm behavior is unchanged for the logged-in learner (no new group membership, no visible difference) - this step is expected to be a no-op with the switch off.

No canary/functional test of the actual budget-group sync is possible from this PR alone; that requires the switch to be enabled and at least one org mapped, which happens in a later rollout stage.

Deadline

None.

Other information

  • Blocking dependency, must land first: enterprise-integrated-channels must be pinned to >=0.1.67 (published from feat: auto-assign TPA org learners to their orgs Learner Credit budget openedx/enterprise-integrated-channels#190) before this PR is deployed. As of this branch, requirements/edx/base.txt still pins enterprise-integrated-channels==0.1.18, which does not contain channel_integrations.integrated_channel.pipeline. Deploying this change ahead of that pin bump would make the dotted-path pipeline entry unresolvable at Django startup, breaking SSO login for every customer, not just Skillsoft. The pin bump should land and be verified as its own prior PR/deploy (make upgrade-package package=enterprise-integrated-channels) before this one merges.
  • No database migration.
  • Safe to revert independently: removing this one line from additional_elements fully reverts the change.

Copilot AI lite review requested due to automatic review settings August 11, 2026 09:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the enterprise third-party-auth pipeline insertion logic to include an additional pipeline step intended to sync the TPA budget group for integrated channel support.

Changes:

  • Added channel_integrations.integrated_channel.pipeline.sync_tpa_budget_group to the additional enterprise social-auth pipeline elements.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 1036 to 1039
additional_elements = (
'enterprise.tpa_pipeline.handle_enterprise_logistration',
'channel_integrations.integrated_channel.pipeline.sync_tpa_budget_group',
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants