-
New Feature
-
Resolution: Done
-
Minor
-
None
-
4.2
-
MOODLE_402_STABLE
-
MDL-76699-master-2 -
-
6
-
Team Hedgehog Sprint 1.3
Subsystem
The proposed approach for integrating Moodle with communication platforms such as Matrix is to create a new Moodle subsystem with each platform integration (such as Matrix) being implemented as a plugin. With the admin option to enable/disable the subsystem (default to disabled)
See: https://moodledev.io/general/development/policies/component-communication#subsystems
This subsystem functionality will be flagged as an experimental feature (defaulted to disabled), which gives us more flexibility when landing features. The ability to enable the subsystem will therefore not be available unless the experimental feature is enabled. Also the whole subsystem and related plugins will be disabled if the experimental flag is flipped from enabled to disabled.
There will need to be some minimal initial admin configuration around the plugins themselves, similar to the pattern for question bank (qbank_*) plugins. We can initially differ handling of multiple simultaneous plugins until a future phase of work.
The proposed name of the subsystem is: communication
Plugin type
Create a new plugin type that integrates with the communication subsystem, so that each integration with a communication platform (like Matrix) can be installed and managed. It will also provide a path for the community to create their own integrations.
Each plugin will need to implement/override some core methods. For example how the default behavior for chat rooms for new courses is controlled.
The proposed plugin prefix is: communication*_
Folder structure
The new plugins should be in the communication/provider folder.
Example: communication/provider/matrix
User stories
- As an admin I want to be able to enable or disable the Matrix chat functionality via the Moodle LMS settings (subsystem). So I can control and evaluate how my organisation has access to this functionality.
- As an admin I expect that Matrix chat rooms for existing courses are not enabled by default when I upgrade to Moodle 4.2. So not to confuse the teachers at my organisation.
- As an admin I want a visual indication of whether the configured chat plugin can successfully communicate with the configured external service. So I can easily tell if the entered details are valid and the server is reachable.
- As a Moodle developer I want a Moodle subsystem that supports plugins with a suitable API so that I can write plugins that integrate with various chat systems like Matrix.
- blocks
-
MDL-76702 Create Matrix rooms from Course settings
- Closed
-
MDL-76708 Matrix user creation from Moodle
- Closed
-
MDL-76796 Update plugin generator plugin for new comm type
- Closed
- has been marked as being related by
-
MDL-76737 Matrix test mock
- Closed
- is duplicated by
-
MDL-76700 New communications plugin type
- Closed
- will help resolve
-
MDL-77576 Matrix integration MVP - Matrix is available for use in courses
- Closed