Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Open edX Verawood Release - Product Release Notes
lti_notifications
verawood_lti_cert
copyright_acceptance
verawood_frontend_plugin_slots

Information for site operators and developers, including information on how to
enable and/or configure new features that require additional work, can be found
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
.. _Verawood Frontend Plugin Slots:

New Frontend Plugin Slots for the Verawood Release
##################################################

Utilizing *frontend plugin slots*, site operators now have the ability to
customize various portions of the site.

A “frontend plugin slot” refers to an area of a web page - comprising one or
more visual elements - that can be “swapped out” with other visual elements. For
example, one plugin slot allows you to remove the "Help" button in the header.

Overhead and hassle is minimized using the plugin slot system. Site operators
can leverage a plugin slot using a configuration file; the codebase does not
need to be copied (“forked”) nor are extensive changes needed. A snippet of code
is all that is needed to use a plugin slot. A site operator places that code
within a configuration file. Site operators should refer to the
``src/plugin-slots`` directory within each MFE's codebase to view documentation
for that MFE's plugin slot(s).

In these release notes, we'll detail the new and updated plugin slots found in the Ulmo
release. The full list of existing plugin slots can be found in
:ref:`Available Frontend Plugin Slots`, and usage instructions are
available at :ref:`Use A Frontend Plugin Framework Slot`.

.. contents::
:local:
:depth: 1

Where possible, descriptions of the plugin slots are provided. Click the name of
the slot to be brought to the documentation page which contains example
screenshots.

Note: Instance operators using these slots will need to use their
fully-qualified slot id provided in the descriptions, such as
``org.openedx.frontend.authoring.course_unit_sidebar.v1``.

frontend-app-authoring
**********************

**Added:**

- `org.openedx.frontend.authoring.page_banner.v1
<https://github.com/openedx/frontend-app-authoring/tree/release/verawood/src/plugin-slots/PageBannerSlot>`_:
This slot wraps the Paragon ```PageBanner`` component to allow plugins to replace,
modify, or hide the banner shown on pages like Schedule & Details. By default,
it renders the standard ``PageBanner`` with the provided props and children.

frontend-app-discussions
************************

**Added:**

- `org.openedx.frontend.layout.header_discussions.v1
<https://github.com/openedx/frontend-app-discussions/tree/release/verawood/src/plugin-slots/HeaderSlot>`_:
This slot is used to replace/modify/hide the discussions header.

frontend-app-learning
*********************

**Added:**

- `org.openedx.frontend.learning.course_tab_links.v1
<https://github.com/openedx/frontend-app-learning/tree/release/verawood/src/plugin-slots/CourseTabLinksSlot>`_:
This slot is used to replace/modify/hide the course tabs.
- `org.openedx.frontend.learning.course_tabs_navigation.v1
<https://github.com/openedx/frontend-app-learning/tree/release/verawood/src/plugin-slots/CourseTabsNavigationSlot>`_:
This slot is used to replace/modify/hide the entire course tab navigation.
- `org.openedx.frontend.learning.learner_tools.v1
<https://github.com/openedx/frontend-app-learning/tree/release/verawood/src/plugin-slots/LearnerToolsSlot>`_:
This plugin slot provides a location for learner-facing tools and features to
be displayed during course content navigation. The slot is rendered via a
React portal to ``document.body`` to ensure proper positioning and stacking
context.

**Updated:**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think what I'd be looking for at a high level in this section would be:

  • What IDs are deprecated
    • When will the deprecated ID stop working? What should I change it to?
  • Will my existing plugins still work?
    • From what I can tell the shape of the slots didn't change, so existing plugins should still work.
  • How do I fix it if my plugin broke? What should I do instead?
    • ADR link should cover that.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure I have the context to fix all that :\ would you be able to make suggestions, or a PR into this branch?


See `ADR-10 Extract Update Widget from Core MFE
<https://github.com/openedx/frontend-app-learning/blob/release/verawood/docs/decisions/0010-upgrade-widget-extraction.md>`_
for more detail.

- `NotificationTraySlot
<https://github.com/openedx/frontend-app-learning/tree/release/ulmo/src/plugin-slots/NotificationTraySlot>`_
is now `org.openedx.frontend.learning.upgrade_panel.v1
<https://github.com/openedx/frontend-app-learning/tree/release/verawood/src/widgets/upgrade>`_
Comment on lines +82 to +85

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The old org.openedx.frontend.learning.notification_tray.v1 still exists as an alias. So NotificationTraySlot is deprecated but still exists for this release.

- `NotificationsDiscussionsSidebarSlot
<https://github.com/openedx/frontend-app-learning/tree/release/ulmo/src/plugin-slots/NotificationsDiscussionsSidebarSlot>`_
is now `org.openedx.frontend.learning.right_sidebar.v1
<https://github.com/openedx/frontend-app-learning/tree/release/verawood/src/plugin-slots/RightSidebarSlot>`_
Comment on lines +86 to +89

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The old ids still exist as aliases.

Sidenote: not sure where right_sidebar_slot came from as an alias in there. I don't think we had it in previous releases so we shouldn't have it in Verawood. This is mostly a note-to-self to make an issue to investigate/remove it.

- `NotificationsDiscussionsSidebarTriggerSlot
<https://github.com/openedx/frontend-app-learning/tree/release/ulmo/src/plugin-slots/NotificationsDiscussionsSidebarTriggerSlot>`_
is now `org.openedx.frontend.learning.right_sidebar_trigger.v1
<https://github.com/openedx/frontend-app-learning/tree/release/verawood/src/plugin-slots/RightSidebarTriggerSlot>`_
Comment on lines +90 to +93

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Old ids still there as aliases

Same sidenote as the previous one about an extra alias we probably shouldn't have (right_sidebar_trigger_slot).


**Removed:**

- `NotificationWidgetSlot <https://github.com/openedx/frontend-app-learning/tree/release/ulmo/src/plugin-slots/NotificationWidgetSlot>`_
Comment on lines +95 to +97

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This does appear to be removed. It's not clear from https://github.com/openedx/frontend-app-learning/blob/release/verawood/docs/decisions/0010-upgrade-widget-extraction.md what a site operator that was using that slot before is supposed to do now. Not something that needs to be addressed on this page but worth adding to the ADR.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I dug a bit and that was the conclusion I came to



frontend-app-instructor-dashboard
**********************************

This repository is new as of Verawood, and is enabled by default. It can be optionally disabled; see the :ref:`Verawood operator notes <Verawood operators>`.

**Added:**
Comment thread
sarina marked this conversation as resolved.

- `CourseInfoSlot

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@brian-smith-tcril in the Ulmo notes, we used the fully-qualified names in these release notes, but I wasn't sure what to do here since there are two names now in frontend-base land. Which should I use? https://github.com/openedx/frontend-app-instructor-dashboard/tree/main/src/slots/CourseInfoSlot

Image

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'd use the slot id (org.openedx.frontend.slot.header.primaryLinks.v1)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actually this is kind of pointing to a bigger thing. There are slots that exist in frontend-base itself.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Despite your second line, I should use the slot id here?

Also what URL should I use, given that I incorrectly assumed we'd use a release/verawood branch? (eg https://github.com/openedx/frontend-app-instructor-dashboard/tree/release/verawood/src/slots/CourseInfoSlot)

<https://github.com/openedx/frontend-app-instructor-dashboard/tree/release/verawood/src/slots/CourseInfoSlot>`_:
The content of this slot renders the current course's organization, course
number, and title next to the site logo while a user is on any instructor
dashboard page, giving instructors an at-a-glance reminder of the course they
are working in.
- `EnrollmentActionsSlot
<https://github.com/openedx/frontend-app-instructor-dashboard/tree/release/verawood/src/slots/EnrollmentActionsSlot>`_:
This slot is used to replace/modify/hide the action buttons in the header of
the Enrollments tab. By default it renders Add Beta Testers and Enroll
Learners with no permission gating, so out of the box the behavior is
unchanged.
- `PlaceholderSlot
<https://github.com/openedx/frontend-app-instructor-dashboard/tree/release/verawood/src/slots/PlaceholderSlot>`_:
A placeholder for adding new tabs & routes to the instructor dashboard. Both
slots ship empty. The instructor dashboard already renders a built-in set of
tabs (Course Info, Enrollments, Course Team, Cohorts, Grading, etc.); these
slots exist so a site operator can add new tabs alongside them.

.. seealso::

* :ref:`Use A Frontend Plugin Framework Slot`

* :ref:`Frontend Slots Learner Dash (Sumac)`

* :ref:`Frontend Slots Header (Sumac)`

**Maintenance chart**

+--------------+-------------------------------+----------------+------------------------------------+
| Review Date | Working Group Reviewer | Release |Test situation |
+--------------+-------------------------------+----------------+------------------------------------+
| 2026-07-30 | Frontend WG | Verawood | Pass |
+--------------+-------------------------------+----------------+------------------------------------+
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ We encourage operators to enable frontend-base on staging or sandbox instances
and provide feedback on the `Open edX forums
<https://discuss.openedx.org/c/working-groups/fe-wg/37>`_.

:ref:`More Flexibility To Build Custom Features <Verawood Frontend Plugin Slots>`: More
plugin slots have been added across the platform to support easier customization
and extension by your development or operations team.


🔮 Upcoming in Willow (December 2026)
**************************************
Expand Down