Looking for the current Rivet documentation? View the v1 site.
Back

Web Framework plugin system

A system for creating and managing plugins for the WCMS-based Web Framework to accommodate custom components and functionality.

Chat icon Comment on this document

Use your IU Login to access and comment on this RFC in Google Docs.

This RFC describes the plugin system to be used by Web Framework 2, which will replace the current Web Framework. For more on the rationale for the features described in this RFC and how these changes might impact your team, see the Web Framework 2 product summary.

Background

The Web Framework is designed to provide a solid foundation for units building informational and marketing websites at IU. However, like any other framework, it can’t account for every possible need a unit might have, and at an institution as broad and diverse as ours, needs can vary considerably between units.

The next generation of the Web Framework aims to make customization a streamlined process that poses fewer obstacles to site managers, content specialists, web developers, and support staff. One such method of customization, the plugin, is described in this RFC.

Customizing a Web Framework 2 site

Starting with Web Framework 2, sites can be customized with plugins: add-ons that can be installed on a per-site basis using a dashboard similar to WCMS Manager Tools. A plugin is a bundle of code files using a special format understood by the Web Framework — more details on this format will be described in a future RFC on how to develop plugins.

Plugins can be created to extend a Web Framework site in a variety of ways, including the addition of new headers, belts, skirts, footers, content components (formerly known as “banners” and “chunks”), feeds, integrations with other applications, or entirely new page types. Plugins all share a common format, so a plugin developed for one site can be installed on any other Web Framework 2 site.

Additionally, multiple related plugins can be bundled together into a single package, such as a new page type (like an art gallery item) and the associated new content component for displaying a feed of art gallery items on a page.

The plugin system is designed to work with the Web Framework’s new versioning and update system, so customizing a site with plugins won't make it more difficult to keep it up to date with new features, accessibility fixes, or security patches.

Managing plugins

Plugins can be managed through a Framework site manager dashboard: a web interface similar to WCMS Manager Tools. By signing in with IU Login, an individual will be able to see a list of all Web Framework 2 sites they're a manager of (shown below).

Prototype of the the Web Framework site manager showing a list of managed sites and a actions tab
Prototype of the Web Framework site manager dashboard. 1.) List of framework sites you manage 2.) Actions tab

1. List of framework sites you manage

Each Web Framework 2 site the individual is a manager of will appear on this screen. You can read more about the information shown for each site in the Framework Version System RFC.

2. Actions tab

Reveals the actions that can be taken with a site, including “Manage plugins.” Selecting this option will show that site’s plugin manager screen (see below).

Plugin manager screen

Prototype of the the Web Framework site manager showing installed plugins, actions tab, and a button to install a new plugin
Prototype of the plugin management screen for a single site. 1.) List of installed plugins 2.) Actions tab 3.) “Install new plugin” button

1. List of installed plugins

Any plugins installed on the site will appear in this list. Each entry shows the name of the plugin, its version, its developer, and a link to see more details about the plugin.

2. Actions tab

Reveals the actions that can be taken with a plugin, including “Remove plugin” and “Update plugin.”

3. “Install new plugin” button

Clicking this button will allow a site manager to upload a plugin bundle from their computer and install that plugin on the site. After selecting a plugin bundle, the site manager will be shown the installation confirmation screen.

Installation confirmation screen

Prototype of the the Web Framework site manager showing a plugin summary, error report, and a button to install a new plugin
Prototype of the plugin installation confirmation screen. 1.) Plugin summary 2.) Error report 3.) “Install plugin” button

1. Plugin summary

The name of the plugin and a short description of the new features it will add to the site. A site manager will also see the version number of the plugin being installed and the name of the site to which they're adding the plugin.

2. Error report

Before installing, the plugin system will check for any issues with either the uploaded bundle or the site that would prevent the plugin from being installed safely. In most cases, a site manager will see the “No issues detected” message letting them know that the plugin is ready to install.

Situations in which a plugin cannot be installed are rarely the result of a site manager’s actions and typically represent an issue with the WCMS, such as an outage, or an improperly formatted plugin bundle. Site managers are encouraged to contact UITS Support or the plugin’s developer to resolve the issue.

3. “Install plugin” button

Clicking this button queues up the plugin for installation. To keep from overwhelming the WCMS server, plugin installation requests are added to a queue instead of processed immediately.

In most cases, a plugin will be installed on a site within a few minutes after a site manager submits the request. When the installation is complete, all the site’s managers will receive an email notification.

The plugin system does not publish a site after a plugin is installed. Site managers will have an opportunity to make sure the plugin works on their site before publishing.

Plugin errors and warnings

In uncommon cases, there may be errors with the plugin bundle or site that prevent the plugin from being installed.

Prototype of the the Web Framework site manager showing an example error, example warning, and a disabled install button
Prototype plugin confirmation screen with errors and warnings. 1.) Example error 2.) Example warning 3.) Disabled install button

1. Example error

In this example case, the plugin bundle is missing a required file. Errors prevent a plugin from being installed. A site manager can click on the ellipses (...) for more information about the error (see below).

Prototype showing and example error message dialog
Example error details message.

2. Example warning

In this example case, the plugin’s developers haven’t tested to make sure it works with the site’s version of the framework. Warnings don’t prevent a site manager from installing a plugin, but they should try to resolve the issue if possible before installing.

Updating installed plugins

If a new version is available for one or more plugins installed on a site, the plugin management screen will appear as below. Technical information on how the plugin update system works will be made available in a future RFC.

Prototype of the the Web Framework site manager showing the plugin update screen, an updates required alert, and the action tab
A prototype of the plugin update screen. 1.) “Updates required” alert 2.) Action tab

1. “Updates required” alert

This alert will appear if a newer version is available for any of the plugins installed on the site.

2. Action tab

The action tab label will change to “Update required” for plugins that have a newer version available. Plugins needing an update will not be disabled on a site — they will continue to work. However, site managers are strongly encouraged to update plugins as soon as they're able, as these new versions contain important style, accessibility, security, and Framework compatibility updates.

Feedback prompts
  • How might this plugin system better accommodate users who manage plugins across a large number of sites, many of which will have the same sets of plugins installed on them?
  • What IU systems are you integrating with that you’d like to see specific example plugins for (MySQL, CCore, SIS, LiveWhale, etc)?
  • Is there any important information not represented on the plugin management screens as they appear in this RFC?
Give feedback on this document
Chat icon Comment on this document

Use your IU Login to access and comment on this RFC in Google Docs.