HTML modules
HTML modules are a simple way to add small, institution-specific extensions to Flow. An administrator uploads a self-contained HTML file that can use HTML, JavaScript, and CSS. Flow stores the file and makes it available within the authenticated application.
This approach is suitable for additions that can be implemented entirely in the browser, such as a quick data export, a focused analytics dashboard, or a link to an external university service. It is not the primary way in which complete Flow features are developed.
Suitable use cases
- context-specific CSV or JSON exports;
- small analytics and reporting dashboards;
- redirects to a corresponding page in another university system;
- focused self-service pages; and
- other lightweight interfaces that do not require additional server-side logic.
How HTML modules work
An administrator creates an HTML module in Flow by defining its name and description and uploading the HTML file. The administrator can then select which administrative permissions may access it and whether it is also available to lecturers or students.
Each module can be assigned to one optional position in the Flow interface. When a user opens the corresponding button or menu item, Flow serves the HTML file within the user's authenticated session. Contextual positions can provide identifiers such as the course, group, event, staff member, or semester through URL parameters.
If no position is selected, the module remains available to administrators from the HTML module administration area but is not added as a contextual button or menu item.
Available positions
The following positions are currently supported:
| Context | Available positions |
|---|---|
| Course list | Toolbar button or export-menu item |
| Course view | Toolbar button, menu item, or export-menu item |
| Course event details | Toolbar button, menu item, or export-menu item |
| Staff list | Toolbar button or export-menu item |
| Staff details | Toolbar button or export-menu item |
The module's configured permissions and the current user's access to the corresponding page determine whether the button or menu item is displayed.
Using Flow data
JavaScript within an HTML module can call Flow endpoints available to the authenticated user. This can be used to load data for a dashboard or generate a file for download. The available integration endpoints are documented in the Flow API section.
HTML modules execute custom JavaScript within the authenticated Flow application. Only upload code from a trusted source, review which data it accesses, and limit the module to the user groups that require it.
Other ways to extend Flow
HTML modules are intentionally lightweight and are not suitable for every extension. Flow supports other extension approaches for functionality that requires server-side business logic, new data structures, background processing, or larger user interfaces. These approaches will be documented separately.