Mattermost Logo
Edit on GitHub

Manifest Reference

The plugin manifest defines the metadata required to load and present your plugin. The manifest file should be named plugin.json or plugin.yaml and placed in the top of your plugin bundle.

Example plugin.yaml:

id: com.mycompany.myplugin
name: My Plugin
description: This is my plugin. It does stuff.
server:
    executable: myplugin
settings_schema:
    settings:
        - key: enable_extra_thing
          type: bool
          display_name: Enable Extra Thing
          help_text: When true, an extra thing will be enabled!
          default: false

Table of Contents

Documentation

  • id - String

    The id is a globally unique identifier that represents your plugin. Ids must be at least 3 characters, at most 190 characters and must match ^[a-zA-Z0-9-_\.]+$. Reverse-DNS notation using a name you control is a good option, e.g. "com.mycompany.myplugin".

  • name - String

    The name to be displayed for the plugin.

  • description - String

    A description of what your plugin is and does.

  • version - String

    A version number for your plugin. Semantic versioning is recommended: http://semver.org

  • min_server_version - String

    The minimum Mattermost server version required for your plugin.

    Minimum server version: 5.6

  • server - Object

    Server defines the server-side portion of your plugin.

    • executables - Object

      Executables are the paths to your executable binaries, specifying multiple entry points for different platforms when bundled together in a single plugin.

      • linux-amd64 - String

        LinuxAmd64 is the path to your executable binary for the corresponding platform

      • darwin-amd64 - String

        DarwinAmd64 is the path to your executable binary for the corresponding platform

      • windows-amd64 - String

        WindowsAmd64 is the path to your executable binary for the corresponding platform This file must have a ".exe" extension

    • executable - String

      Executable is the path to your executable binary. This should be relative to the root of your bundle and the location of the manifest file.

      On Windows, this file must have a ".exe" extension.

      If your plugin is compiled for multiple platforms, consider bundling them together and using the Executables field instead.

  • backend - Object

    Backend is a deprecated flag for defining the server-side portion of your plugin. Going forward, use Server instead.

    • executables - Object

      Executables are the paths to your executable binaries, specifying multiple entry points for different platforms when bundled together in a single plugin.

      • linux-amd64 - String

        LinuxAmd64 is the path to your executable binary for the corresponding platform

      • darwin-amd64 - String

        DarwinAmd64 is the path to your executable binary for the corresponding platform

      • windows-amd64 - String

        WindowsAmd64 is the path to your executable binary for the corresponding platform This file must have a ".exe" extension

    • executable - String

      Executable is the path to your executable binary. This should be relative to the root of your bundle and the location of the manifest file.

      On Windows, this file must have a ".exe" extension.

      If your plugin is compiled for multiple platforms, consider bundling them together and using the Executables field instead.

  • webapp - Object

    If your plugin extends the web app, you'll need to define webapp.

    • bundle_path - String

      The path to your webapp bundle. This should be relative to the root of your bundle and the location of the manifest file.

  • settings_schema - Object

    To allow administrators to configure your plugin via the Mattermost system console, you can provide your settings schema.

    • header - String

      Optional text to display above the settings.

    • footer - String

      Optional text to display below the settings.

    • settings - Array

      A list of setting definitions.

      • key - String

        The key that the setting will be assigned to in the configuration file.

      • display_name - String

        The display name for the setting.

      • type - String

        The type of the setting.

        "bool" will result in a boolean true or false setting.

        "dropdown" will result in a string setting that allows the user to select from a list of pre-defined options.

        "generated" will result in a string setting that is set to a random, cryptographically secure string.

        "radio" will result in a string setting that allows the user to select from a short selection of pre-defined options.

        "text" will result in a string setting that can be typed in manually.

        "longtext" will result in a multi line string that can be typed in manually.

        "username" will result in a text setting that will autocomplete to a username.

      • help_text - String

        The help text to display to the user.

      • regenerate_help_text - String

        The help text to display alongside the "Regenerate" button for settings of the "generated" type.

      • placeholder - String

        The placeholder to display for "text", "generated" and "username" types when blank.

      • default - Interface

        The default value of the setting.

      • options - Array

        For "radio" or "dropdown" settings, this is the list of pre-defined options that the user can choose from.

        • display_name - String

          The display name for the option.

        • value - String

          The string value for the option.