Plugin Creation Guidelines
One of the advantages of Massa Station is its flexibility in allowing plugins to be developed in any programming language. In order for modules to work with Massa Station, they must adhere to specific guidelines and specifications.
Massa Station plugins are essentially binaries with a few specific requirements, as defined in this document.
Since Massa Station plugins are binaries, developers have the freedom to use their preferred programming language to create plugins that work seamlessly with Massa Station. Most of our Massa Station products and documentation are using Go because it's the language we use internally. However, we encourage developers to use any language they prefer.
For detailed steps on creating a plugin, please refer to the create plugin guide.
Plugin binary specifications
When Massa Station starts a plugin, it generates a unique ID for the plugin and passes it as a parameter to the plugin binary. Once the plugin has started, it must register itself to Massa Station to confirm that it is running properly.
Plugins are started as follows:
At startup, the plugin must retrieve the plugin ID from the command line arguments.
Following the startup, the plugin must register itself by calling the
/plugin-manager/register endpoint of Massa Station, providing the assigned ID.
Massa Station will respond with a 204 status code if the registration is successful. In case of failure, the plugin must exit with a non-zero exit code.
To be installed in Massa Station, a plugin must be packaged as a Zip Archive, tailored for each targeted operating system.
Supported OS Configurations
Currently, Massa Station supports the following OS configurations:
- Windows 10/11, AMD64
- Linux, AMD64
- macOS, AMD64
- macOS, ARM64
A plugin Zip Archive must contain the following files and adhere to the specified structure:
Plugin Binary: The plugin's binary, withch should follow the statdards
Logo: The archive must include a valid image file that serves as the plugin's logo. Refer to the Mozilla Developer Network for valid image formats.tip
This logo will be displayed in the Massa Station interface. To ensure a good user experience, we recommend using a square image with a minimum size of 128x128 pixels.
Manifest: The plugin must have a
manifest.jsonfile at the root of the Zip Archive. This manifest provides essential information to Massa Station for displaying the plugin in the user interface. The
manifest.jsonfile must include the following properties:
Field Description Format Specifications Author Module author's name text Maximum 30 characters Name Module name text Maximum 30 characters Description Module short description text text Maximum 80 characters Logo Module logo file name text Example: logo.png Home URL to module home page URL Format:
Version Module version text Follow Semantic Versioning 2.0 APIspec API specifications text Swagger fileinfo
See the example manifest of the Hello-World plugin: Hello-World Manifest
Optional: Additional Resources: Any additional resources for the plugin such as configuration files, images, etc.