Pages of Plugins

Wiki pages are passed around the federation as inert specifications. These are brought to life by dynamically loaded javascript modules assembled and interconnected as they are rendered into the dom.

The inert page is encoded into json and often referred to as page json even when that json has been parsed into javascript objects.

Each item of the inert page is identified by type, a string, that identifies a plugin capable of rendering the item into the dom and binding whatever event handlers will be required to bring it to life.

While the inert pages can be fetched from anywhere in the federation, the javascript implementation of plugins is always fetched from the origin. This confines the ultimate responsibility for running code to one location consistent with the trust boundaries respected by the browser.