Web Framework plugin system
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.
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.
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).
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
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
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.
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).
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.
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.