Skip to main content

Development Process

Guide to the development process.

Prerequisites

Web Аpp 3 plugins must be built before being deployed, as they reference Pexip’s plugin-api package. This can sound intimidating if you are not a full time web developer, but it's actually very easy. You just need to install a few tools.

To set up for building, you will need to install Node.js on a development machine.

Plugin Framework

Next, you need to download or clone the Pexip Web App 3 Plugin Template. This contains the boilerplate for building your plugins. You should probably rename the directory to something relevant to your plugin.

You need to set the plugin-api version in use to the one relevant for the Web App 3 version you are building for. The relevant line is in package.json:

"dependencies": {
"@pexip/plugin-api": "17.4.0"
},

Set this version to match the Plugin API Version under About Pexip in Web App 3.

Once set, you need to install dependencies. On the command line, move to the root of the plugin-template directory, and run the command: yarn

Once done, you are ready to develop!

Live Development

If you do not wish to go straight to building the code for deployment as a branding package, it is possible to develop live and have your plugin loaded from a local webserver by your Pexip webapp.

To do this, you must have a non-production Infinity installation to develop against, and on this you must temporarily enable the loading of local plugins. To do this, navigate to Platform > Global Settings > Security > HTTP Content-Security-Policy, and ensure there is a frame-src property for http://localhost:5173”.

You will need to have installed some branding on your webapp, but the only requirement is to point to the local server to access the plugin under development. So, your manifest.json would, at minimum, look like this:

{
"images": {},
"translations": {},
"plugins": [{ "src": "http://localhost:5173"}]
}

Then, run yarn start from your plugin folder and navigate to your branded Web App 3. It will load your local plugin, allowing you to test development iteratively. Simply refresh Web App 3 and the latest plugin code will be loaded.

Building for Branding Packages

Once you are happy with your plugin, or if you do not wish to use the live development model, you can build the plugin for packaging by running yarn build. This will generate a directory dist which contains everything you need to upload to your branding package.

Take this dist directory and call it something else, e.g. plugins/plugin-template, in your branding package. Your branding tree will now look like this:

|-- webapp3
|-- branding
|-- plugins
|-- plugin-template
|-- assets
index.js
index.html
manifest.json

You will then need to reference this plugin in the manifest.json:

{
"images": {},
"translations": {},
"plugins": [{ "src": "./plugins/plugin-template/index.html", "id: "plugin-template"}]
}

It is important that the id of the plugin in the manifest is the same as the id in registerPlugin as shown in the Template. This ensures the plugins are loaded in the order specified in the manifest here.