Skip to main content

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.

info

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:

  1. Plugin Binary: The plugin's binary, withch should follow the standards

  2. 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.

  3. 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. The manifest.json file must include the following properties:

    FieldDescriptionFormatSpecifications
    AuthorModule author's nametextMaximum 30 characters
    NameModule nametextMaximum 30 characters
    DescriptionModule short description texttextMaximum 80 characters
    LogoModule logo file nametextExample: logo.png
    HomeURL to module home pageURLFormat: http(s)://example.com
    VersionModule versiontextFollow Semantic Versioning 2.0
    APIspecAPI specificationstextSwagger file
    info

    See the example manifest of the Hello-World plugin: Hello-World Manifest

  4. Optional: Additional Resources: Any additional resources for the plugin such as configuration files, images, etc.