disguise developers

Designer Plugins

Plugins for Disguise Designer software.

Plugin Metadata

Plugin metadata is used to configure how plugins are presented and behave in Designer. Both local and remote plugins can use metadata, though the implementation differs between the two types.

Local Plugin Configuration

Local plugins can be configured using a d3plugin.json file in the plugin’s root directory. This file allows you to customize how the plugin is presented to users. All fields in the file are optional.

{
  "name": string,        // The user-visible name of the plugin
  "url": string,         // The address to route requests for this plugin's web resources to
  "requiresSession": bool // Whether the plugin requires Designer to be running to operate effectively
}

The url field is particularly useful for local plugins as it allows you to specify a custom endpoint for the plugin’s web interface. If not specified, Designer will use its default hosting address for the plugin.

Remote Plugin Configuration

Remote plugins must specify their type (“python” or “web”) through metadata by adding a TXT record to the DNS service registration. Due to the way DNS-SD works, the fields in the TXT record are shortened.

JSON fieldTXT recordDescriptionOptional
nameN/AThe user-visible name of the plugin. The service instance name is used for remote pluginsYes
urluThe address to route requests for this plugin’s web resources to. Defaults to host:port for remote plugins, and the d3service hosted address for local.Yes
N/AtMust always be webNo
requiresSessionsWhether the plugin requires Designer to be running to operate effectively. true or falseYes

Window Configuration

For web plugins, window size metadata is supported through HTML meta tags:

<meta name="disguise-plugin-window-size" content="512,512">
<meta name="disguise-plugin-window-min-size" content="200,200">
<meta name="disguise-plugin-window-resizable" content="true">

These meta tags allow you to control the initial size, minimum size, and resizability of the plugin’s window in Designer.

For information about styling your plugin’s interface, including colour scheme support, see the Plugin Stylesheet page.

For information about remote plugin configuration and discovery, see the Plugin Discovery page.