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.
Plugin Overview
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:
./plugin-binary <PLUGIN-ID>
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.
Plugin Packaging
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
Archive Structure
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 standards
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.
tipThis 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.json
file at the root of the Zip Archive. This manifest provides essential information to Massa Station for displaying the plugin in the user interface. Themanifest.json
file 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: http(s)://example.com
Version Module version text Follow Semantic Versioning 2.0 APIspec API specifications text Swagger file infoSee 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.