Skip to main content

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:

ContextAvailable positions
Course listToolbar button or export-menu item
Course viewToolbar button, menu item, or export-menu item
Course event detailsToolbar button, menu item, or export-menu item
Staff listToolbar button or export-menu item
Staff detailsToolbar 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.

caution

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.